Skip to content

Commit

Permalink
Merge pull request conan-io#3464 from joechrisellis/develop
Browse files Browse the repository at this point in the history
Removed client-side username checks (conan-io#3444)
  • Loading branch information
memsharded committed Sep 4, 2018
2 parents 6bd266d + 7431284 commit 4302540
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 49 deletions.
14 changes: 4 additions & 10 deletions conans/client/userio.py
@@ -1,7 +1,6 @@
import os
import sys
from conans.client.output import ConanOutput
from conans.model.username import Username
from conans.errors import InvalidNameException, ConanException
import getpass
from six.moves import input as raw_input
Expand Down Expand Up @@ -40,15 +39,10 @@ def get_pass(self):
def request_login(self, remote_name, username=None):
"""Request user to input their name and password
:param username If username is specified it only request password"""
user_input = ''
while not username:
try:
if self._interactive:
self.out.write("Remote '%s' username: " % remote_name)
user_input = self.get_username(remote_name)
username = Username(user_input)
except InvalidNameException:
self.out.error('%s is not a valid username' % user_input)
if self._interactive:
self.out.write("Remote '%s' username: " % remote_name)
username = self.get_username(remote_name)

if self._interactive:
self.out.write('Please enter a password for "%s" account: ' % username)
try:
Expand Down
12 changes: 0 additions & 12 deletions conans/model/username.py

This file was deleted.

23 changes: 0 additions & 23 deletions conans/test/model/username_test.py

This file was deleted.

30 changes: 26 additions & 4 deletions conans/test/remote/auth_test.py
Expand Up @@ -22,11 +22,13 @@ class AuthorizeTest(unittest.TestCase):
def setUp(self):
self.servers = {}
self.conan_reference = ConanFileReference.loads("openssl/2.0.1@lasote/testing")
# Create a default remote. R/W is not authorized for conan_reference, just for pepe and owner
self.test_server = TestServer([(str(self.conan_reference), "pepe")], # read permissions
[(str(self.conan_reference), "pepe")], # write permissions
# Create a default remote. R/W is not authorized for conan_reference,
# just for pepe, nacho and owner
self.test_server = TestServer([(str(self.conan_reference), "pepe,nacho@gmail.com")], # read permissions
[(str(self.conan_reference), "pepe,nacho@gmail.com")], # write permissions
users={"lasote": "mypass",
"pepe": "pepepass"}) # exported users and passwords
"pepe": "pepepass",
"nacho@gmail.com" : "nachopass",}) # exported users and passwords
self.servers["default"] = self.test_server

def retries_test(self):
Expand Down Expand Up @@ -94,3 +96,23 @@ def max_retries_test(self):

# Check that login failed all times
self.assertEquals(self.conan.user_io.login_index["default"], 3)

def no_client_username_checks_test(self):
"""Checks whether client username checks are disabled."""

# Try with a load of names that contain special characters
self.conan = TestClient(servers=self.servers, users={"default": [
("some_random.special!characters", "badpass"),
("nacho@gmail.com", "nachopass"),
]})
save(os.path.join(self.conan.current_folder, CONANFILE), conan_content)
self.conan.run("export . lasote/testing")
errors = self.conan.run("upload %s" % str(self.conan_reference), ignore_error=True)

# Check that return was ok
self.assertFalse(errors)
# Check that upload was granted
self.assertTrue(os.path.exists(self.test_server.paths.export(self.conan_reference)))

# Check that login failed once before ok
self.assertEquals(self.conan.user_io.login_index["default"], 2)

0 comments on commit 4302540

Please sign in to comment.