From 1e3b3542010811726c76ca7219d9b022f5ea1946 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Thu, 8 Sep 2016 18:43:50 -0400 Subject: [PATCH] Add support for temp usernames and an interstitial to confirm username When a user now logs in for the first time for any external auth (LDAP, JWT, Keystone, Github, Google, Dex), they will be presented with a confirmation screen that affords them the opportunity to change their Quay-assigned username. Addresses most of the user issues around #74 --- data/database.py | 16 ++++ .../6c7014e84a5e_add_user_prompt_support.py | 47 ++++++++++ data/model/user.py | 45 +++++++++- data/users/federated.py | 3 +- endpoints/api/user.py | 34 +++++--- endpoints/oauthlogin.py | 15 ++-- endpoints/web.py | 6 ++ initdb.py | 6 +- static/css/pages/update-user.css | 25 ++++++ static/directives/namespace-input.html | 4 +- static/js/app.js | 3 + static/js/directives/ui/namespace-input.js | 3 +- static/js/pages/update-user.js | 80 ++++++++++++++++++ static/js/services/user-service.js | 8 +- static/partials/update-user.html | 36 ++++++++ test/data/test.db | Bin 1265664 -> 1294336 bytes test/test_api_usage.py | 78 +++++++++++++++++ test/test_ldap.py | 3 + 18 files changed, 388 insertions(+), 24 deletions(-) create mode 100644 data/migrations/versions/6c7014e84a5e_add_user_prompt_support.py create mode 100644 static/css/pages/update-user.css create mode 100644 static/js/pages/update-user.js create mode 100644 static/partials/update-user.html diff --git a/data/database.py b/data/database.py index bc9c227b4..189179728 100644 --- a/data/database.py +++ b/data/database.py @@ -372,6 +372,22 @@ class User(BaseModel): Namespace = User.alias() +class UserPromptKind(BaseModel): + name = CharField(index=True) + + +class UserPrompt(BaseModel): + user = QuayUserField(allows_robots=False, index=True) + kind = ForeignKeyField(UserPromptKind) + + class Meta: + database = db + read_slaves = (read_slave,) + indexes = ( + (('user', 'kind'), True), + ) + + class TeamRole(BaseModel): name = CharField(index=True) diff --git a/data/migrations/versions/6c7014e84a5e_add_user_prompt_support.py b/data/migrations/versions/6c7014e84a5e_add_user_prompt_support.py new file mode 100644 index 000000000..3959fafd0 --- /dev/null +++ b/data/migrations/versions/6c7014e84a5e_add_user_prompt_support.py @@ -0,0 +1,47 @@ +"""Add user prompt support + +Revision ID: 6c7014e84a5e +Revises: c156deb8845d +Create Date: 2016-10-31 16:26:31.447705 + +""" + +# revision identifiers, used by Alembic. +revision = '6c7014e84a5e' +down_revision = 'c156deb8845d' + +from alembic import op +import sqlalchemy as sa + +def upgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.create_table('userpromptkind', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=255), nullable=False), + sa.PrimaryKeyConstraint('id', name=op.f('pk_userpromptkind')) + ) + op.create_index('userpromptkind_name', 'userpromptkind', ['name'], unique=False) + op.create_table('userprompt', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('user_id', sa.Integer(), nullable=False), + sa.Column('kind_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['kind_id'], ['userpromptkind.id'], name=op.f('fk_userprompt_kind_id_userpromptkind')), + sa.ForeignKeyConstraint(['user_id'], ['user.id'], name=op.f('fk_userprompt_user_id_user')), + sa.PrimaryKeyConstraint('id', name=op.f('pk_userprompt')) + ) + op.create_index('userprompt_kind_id', 'userprompt', ['kind_id'], unique=False) + op.create_index('userprompt_user_id', 'userprompt', ['user_id'], unique=False) + op.create_index('userprompt_user_id_kind_id', 'userprompt', ['user_id', 'kind_id'], unique=True) + ### end Alembic commands ### + + op.bulk_insert(tables.userpromptkind, + [ + {'name':'confirm_username'}, + ]) + + +def downgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.drop_table('userprompt') + op.drop_table('userpromptkind') + ### end Alembic commands ### diff --git a/data/model/user.py b/data/model/user.py index 14069ce32..891b2e77f 100644 --- a/data/model/user.py +++ b/data/model/user.py @@ -11,7 +11,8 @@ from data.database import (User, LoginService, FederatedLogin, RepositoryPermiss Team, Repository, TupleSelector, TeamRole, Namespace, Visibility, EmailConfirmation, Role, db_for_update, random_string_generator, UserRegion, ImageStorageLocation, QueueItem, TeamMemberInvite, - ServiceKeyApproval, OAuthApplication, RepositoryBuildTrigger) + ServiceKeyApproval, OAuthApplication, RepositoryBuildTrigger, + UserPromptKind, UserPrompt) from data.model import (DataModelException, InvalidPasswordException, InvalidRobotException, InvalidUsernameException, InvalidEmailAddressException, TooManyLoginAttemptsException, db_transaction, @@ -102,6 +103,38 @@ def change_password(user, new_password): notification.delete_notifications_by_kind(user, 'password_required') +def has_user_prompts(user): + try: + UserPrompt.select().where(UserPrompt.user == user).get() + return True + except UserPrompt.DoesNotExist: + return False + +def has_user_prompt(user, prompt_name): + prompt_kind = UserPromptKind.get(name=prompt_name) + + try: + UserPrompt.get(user=user, kind=prompt_kind) + return True + except UserPrompt.DoesNotExist: + return False + + +def create_user_prompt(user, prompt_name): + prompt_kind = UserPromptKind.get(name=prompt_name) + return UserPrompt.create(user=user, kind=prompt_kind) + + +def remove_user_prompt(user, prompt_name): + prompt_kind = UserPromptKind.get(name=prompt_name) + UserPrompt.delete().where(UserPrompt.user == user, UserPrompt.kind == prompt_kind).execute() + + +def get_user_prompts(user): + query = UserPrompt.select().where(UserPrompt.user == user).join(UserPromptKind) + return [prompt.kind.name for prompt in query] + + def change_username(user_id, new_username): (username_valid, username_issue) = validate_username(new_username) if not username_valid: @@ -121,6 +154,10 @@ def change_username(user_id, new_username): # Rename the user user.username = new_username user.save() + + # Remove any prompts for username. + remove_user_prompt(user, 'confirm_username') + return user @@ -305,11 +342,15 @@ def list_entity_robot_permission_teams(entity_name, include_permissions=False): def create_federated_user(username, email, service_name, service_ident, - set_password_notification, metadata={}, email_required=True): + set_password_notification, metadata={}, + email_required=True, confirm_username=False): new_user = create_user_noverify(username, email, email_required=email_required) new_user.verified = True new_user.save() + if confirm_username: + create_user_prompt(new_user, 'confirm_username') + service = LoginService.get(LoginService.name == service_name) FederatedLogin.create(user=new_user, service=service, service_ident=service_ident, diff --git a/data/users/federated.py b/data/users/federated.py index 52f7c15cf..b78f90ae4 100644 --- a/data/users/federated.py +++ b/data/users/federated.py @@ -52,7 +52,8 @@ class FederatedUsers(object): db_user = model.user.create_federated_user(valid_username, email, self._federated_service, username, set_password_notification=False, - email_required=self._requires_email) + email_required=self._requires_email, + confirm_username=True) else: # Update the db attributes from the federated service. if email: diff --git a/endpoints/api/user.py b/endpoints/api/user.py index 8e4a6b43f..01b58abf2 100644 --- a/endpoints/api/user.py +++ b/endpoints/api/user.py @@ -66,7 +66,7 @@ def handle_invite_code(invite_code, user): return True -def user_view(user): +def user_view(user, previous_username=None): def org_view(o, user_admin=True): admin_org = AdministerOrganizationPermission(o.username) org_response = { @@ -105,7 +105,7 @@ def user_view(user): 'avatar': avatar.get_data_for_user(user), } - user_admin = UserAdminPermission(user.username) + user_admin = UserAdminPermission(previous_username if previous_username else user.username) if user_admin.can(): user_response.update({ 'can_create_repo': True, @@ -117,6 +117,7 @@ def user_view(user): 'invoice_email_address': user.invoice_email_address, 'preferred_namespace': not (user.stripe_id is None), 'tag_expiration': user.removed_tag_expiration_s, + 'prompts': model.user.get_user_prompts(user), }) analytics_metadata = user_analytics.get_user_analytics_metadata(user) @@ -217,7 +218,7 @@ class User(ApiResource): 'UserView': { 'type': 'object', 'description': 'Describes a user', - 'required': ['verified', 'anonymous', 'avatar'], + 'required': ['anonymous', 'avatar'], 'properties': { 'verified': { 'type': 'boolean', @@ -283,6 +284,7 @@ class User(ApiResource): """ Update a users details such as password or email. """ user = get_authenticated_user() user_data = request.get_json() + previous_username = None try: if 'password' in user_data: @@ -324,19 +326,29 @@ class User(ApiResource): else: model.user.update_email(user, new_email, auto_verify=not features.MAILING) - if ('username' in user_data and user_data['username'] != user.username and - features.USER_RENAME): - new_username = user_data['username'] - if model.user.get_user_or_org(new_username) is not None: - # Username already used - raise request_error(message='Username is already in use') + # Check for username rename. A username can be renamed if the feature is enabled OR the user + # currently has a confirm_username prompt. + if 'username' in user_data: + confirm_username = model.user.has_user_prompt(user, 'confirm_username') + new_username = user_data.get('username') + previous_username = user.username - model.user.change_username(user.id, new_username) + rename_allowed = features.USER_RENAME or confirm_username + username_changing = new_username and new_username != previous_username + + if rename_allowed and username_changing: + if model.user.get_user_or_org(new_username) is not None: + # Username already used. + raise request_error(message='Username is already in use') + + user = model.user.change_username(user.id, new_username) + elif confirm_username: + model.user.remove_user_prompt(user, 'confirm_username') except model.user.InvalidPasswordException, ex: raise request_error(exception=ex) - return user_view(user) + return user_view(user, previous_username=previous_username) @show_if(features.USER_CREATION) @show_if(features.DIRECT_LOGIN) diff --git a/endpoints/oauthlogin.py b/endpoints/oauthlogin.py index dbb7171f5..8698d6430 100644 --- a/endpoints/oauthlogin.py +++ b/endpoints/oauthlogin.py @@ -37,11 +37,11 @@ def get_user(service, token): 'access_token': token, 'alt': 'json', } - get_user = client.get(service.user_endpoint(), params=token_param) - if get_user.status_code != requests.codes.ok: + got_user = client.get(service.user_endpoint(), params=token_param) + if got_user.status_code != requests.codes.ok: return {} - return get_user.json() + return got_user.json() def conduct_oauth_login(service, user_id, username, email, metadata={}): @@ -65,7 +65,7 @@ def conduct_oauth_login(service, user_id, username, email, metadata={}): to_login = model.user.create_federated_user(new_username, email, service_name.lower(), user_id, set_password_notification=True, - metadata=metadata) + metadata=metadata, confirm_username=True) # Success, tell analytics analytics.track(to_login.username, 'register', {'service': service_name.lower()}) @@ -75,7 +75,7 @@ def conduct_oauth_login(service, user_id, username, email, metadata={}): logger.debug('Aliasing with state: %s', state) analytics.alias(to_login.username, state) - except model.InvalidEmailAddressException as ieex: + except model.InvalidEmailAddressException: message = "The e-mail address %s is already associated " % (email, ) message = message + "with an existing %s account." % (app.config['REGISTRY_TITLE_SHORT'], ) message = message + "\nPlease log in with your username and password and " @@ -87,7 +87,10 @@ def conduct_oauth_login(service, user_id, username, email, metadata={}): return render_ologin_error(service_name, ex.message) if common_login(to_login): - return redirect(url_for('web.index')) + if model.user.has_user_prompts(to_login): + return redirect(url_for('web.updateuser')) + else: + return redirect(url_for('web.index')) return render_ologin_error(service_name) diff --git a/endpoints/web.py b/endpoints/web.py index fa04a01db..7e95a2217 100644 --- a/endpoints/web.py +++ b/endpoints/web.py @@ -170,6 +170,12 @@ def new(): return index('') +@web.route('/updateuser') +@no_cache +def updateuser(): + return index('') + + @web.route('/confirminvite') @no_cache def confirm_invite(): diff --git a/initdb.py b/initdb.py index 07fa92039..d60378900 100644 --- a/initdb.py +++ b/initdb.py @@ -19,7 +19,7 @@ from data.database import (db, all_models, Role, TeamRole, Visibility, LoginServ ImageStorageTransformation, ImageStorageSignatureKind, ExternalNotificationEvent, ExternalNotificationMethod, NotificationKind, QuayRegion, QuayService, UserRegion, OAuthAuthorizationCode, - ServiceKeyApprovalType, MediaType, LabelSourceType) + ServiceKeyApprovalType, MediaType, LabelSourceType, UserPromptKind) from data import model from data.queue import WorkQueue from app import app, storage as store, tf @@ -396,6 +396,8 @@ def initialize_database(): LabelSourceType.create(name='api', mutable=True) LabelSourceType.create(name='internal') + UserPromptKind.create(name='confirm_username') + def wipe_database(): logger.debug('Wiping all data from the DB.') @@ -781,6 +783,8 @@ def populate_database(minimal=False, with_storage=False): fake_queue = WorkQueue('fakequeue', tf) fake_queue.put(['canonical', 'job', 'name'], '{}') + model.user.create_user_prompt(new_user_5, 'confirm_username') + while repositoryactioncounter.count_repository_actions(): pass diff --git a/static/css/pages/update-user.css b/static/css/pages/update-user.css new file mode 100644 index 000000000..e5931c9b7 --- /dev/null +++ b/static/css/pages/update-user.css @@ -0,0 +1,25 @@ +.update-user p { + margin-top: 20px; +} + +.update-user .username-status { + margin-left: 10px; + font-size: 125%; + vertical-align: middle; +} + +.update-user .username-status .fa { + margin-right: 4px; +} + +.update-user i.fa-exclamation-triangle { + color: #FCA657; +} + +.update-user i.fa-check-circle { + color: #2FC98E; +} + +.update-user i.fa-ban { + color: #D64456; +} diff --git a/static/directives/namespace-input.html b/static/directives/namespace-input.html index def68b57f..3c20a6325 100644 --- a/static/directives/namespace-input.html +++ b/static/directives/namespace-input.html @@ -1,5 +1,7 @@ + ng-model-options="{'debounce': 200}" + name="namespaceField" + ng-class="hasExternalError ? 'ng-invalid' : ''"> \ No newline at end of file diff --git a/static/js/app.js b/static/js/app.js index 47dfc0e7d..4a8e98cdf 100644 --- a/static/js/app.js +++ b/static/js/app.js @@ -189,6 +189,9 @@ quayApp.config(['$routeProvider', '$locationProvider', 'pages', function($routeP // Privacy .route('/privacy', 'privacy') + // Change username + .route('/updateuser', 'update-user') + // Landing Page .route('/', 'landing') diff --git a/static/js/directives/ui/namespace-input.js b/static/js/directives/ui/namespace-input.js index 1c0c9f468..422539c12 100644 --- a/static/js/directives/ui/namespace-input.js +++ b/static/js/directives/ui/namespace-input.js @@ -11,13 +11,14 @@ angular.module('quay').directive('namespaceInput', function () { scope: { 'binding': '=binding', 'isBackIncompat': '=isBackIncompat', + 'hasExternalError': '=?hasExternalError', + 'namespaceTitle': '@namespaceTitle', }, controller: function($scope, $element) { $scope.USERNAME_PATTERN = USERNAME_PATTERN; $scope.usernamePattern = new RegExp(USERNAME_PATTERN); - $scope.$watch('binding', function(binding) { if (!binding) { $scope.isBackIncompat = false; diff --git a/static/js/pages/update-user.js b/static/js/pages/update-user.js new file mode 100644 index 000000000..319f55760 --- /dev/null +++ b/static/js/pages/update-user.js @@ -0,0 +1,80 @@ +(function() { + /** + * Update user page. + */ + angular.module('quayPages').config(['pages', function(pages) { + pages.create('update-user', 'update-user.html', UpdateUserCtrl, { + 'title': 'Confirm Username' + }); + }]); + + function UpdateUserCtrl($scope, UserService, $location, ApiService) { + $scope.state = 'loading'; + + UserService.updateUserIn($scope, function(user) { + if (!user.prompts || !user.prompts.length) { + $location.path('/'); + return; + } + + $scope.state = 'editing'; + $scope.username = user.username; + }); + + var confirmUsername = function(username) { + if (username == $scope.user.username) { + $scope.state = 'confirmed'; + return; + } + + $scope.state = 'confirming'; + var params = { + 'username': username + }; + + ApiService.getUserInformation(null, params).then(function() { + $scope.state = 'existing'; + }, function(resp) { + if (resp.status == 404) { + $scope.state = 'confirmed'; + } else { + $scope.state = 'error'; + } + }); + }; + + $scope.updateUsername = function(username) { + $scope.state = 'updating'; + var data = { + 'username': username + }; + + ApiService.changeUserDetails(data).then(function() { + window.location = '/'; + }, ApiService.errorDisplay('Could not update username')); + }; + + $scope.hasPrompt = function(user, prompt_name) { + if (!user.prompts) { + return false; + } + + for (var i = 0; i < user.prompts.length; ++i) { + if (user.prompts[i] == prompt_name) { + return true; + } + } + + return false; + }; + + $scope.$watch('username', function(username) { + if (!username) { + $scope.state = 'editing'; + return; + } + + confirmUsername(username); + }); + } +})(); \ No newline at end of file diff --git a/static/js/services/user-service.js b/static/js/services/user-service.js index b60f97806..c64fdffa1 100644 --- a/static/js/services/user-service.js +++ b/static/js/services/user-service.js @@ -91,8 +91,14 @@ function(ApiService, CookieService, $rootScope, Config, $location) { } } + // If the loaded user has a prompt, redirect them to the update page. + if (loadedUser.prompts && loadedUser.prompts.length) { + $location.path('/updateuser'); + return; + } + if (opt_callback) { - opt_callback(); + opt_callback(loadedUser); } }; diff --git a/static/partials/update-user.html b/static/partials/update-user.html new file mode 100644 index 000000000..1f95479f4 --- /dev/null +++ b/static/partials/update-user.html @@ -0,0 +1,36 @@ +
+ + +
+

Confirm Username

+

+ The username {{ user.username }} was automatically generated to conform to the + Docker CLI guidelines for use as a namespace in . +

+

Please confirm the selected username or enter a different username below:

+
+
+ + + + + Username valid + + + Username already taken + + + Could not check username + + + Usernames must be alphanumeric and be at least four characters in length + + + Note: Usernames with dots or dashes are incompatible with Docker verion 1.8 or older + +
+
\ No newline at end of file diff --git a/test/data/test.db b/test/data/test.db index 522cb90c547a4065295f32f2fdfae43f8ef2efca..d60a97b3dd302332e7e5c7b8ba593427a57651c2 100644 GIT binary patch delta 72165 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