From 0f2eb61f4a54feb1bb240c9086c82d98f37eabd8 Mon Sep 17 00:00:00 2001 From: Joseph Schorr Date: Fri, 4 Nov 2016 17:57:55 -0400 Subject: [PATCH] Add collection of user metadata: name and company --- config.py | 3 ++ data/database.py | 9 ++++ .../491a530df230_add_user_metadata_fields.py | 44 ++++++++++++++++ data/model/user.py | 48 ++++++++++++++---- data/users/federated.py | 4 +- endpoints/api/superuser.py | 3 +- endpoints/api/user.py | 23 +++++++-- endpoints/oauthlogin.py | 5 +- endpoints/web.py | 5 +- initdb.py | 2 + static/js/pages/landing.js | 6 ++- static/js/pages/update-user.js | 21 ++++---- static/partials/update-user.html | 38 +++++++++++++- test/data/test.db | Bin 1294336 -> 1294336 bytes 14 files changed, 178 insertions(+), 33 deletions(-) create mode 100644 data/migrations/versions/491a530df230_add_user_metadata_fields.py diff --git a/config.py b/config.py index c18a1fd69..6cad05061 100644 --- a/config.py +++ b/config.py @@ -222,6 +222,9 @@ class DefaultConfig(object): # Feature Flag: Whether to proxy all direct download URLs in storage via the registry's nginx. FEATURE_PROXY_STORAGE = False + # Feature Flag: Whether to collect and support user metadata. + FEATURE_USER_METADATA = False + # The namespace to use for library repositories. # Note: This must remain 'library' until Docker removes their hard-coded namespace for libraries. # See: https://github.com/docker/docker/blob/master/registry/session.go#L320 diff --git a/data/database.py b/data/database.py index 189179728..7fda6738b 100644 --- a/data/database.py +++ b/data/database.py @@ -337,6 +337,9 @@ class User(BaseModel): enabled = BooleanField(default=True) invoice_email_address = CharField(null=True, index=True) + name = CharField(null=True) + company = CharField(null=True) + def delete_instance(self, recursive=False, delete_nullable=False): # If we are deleting a robot account, only execute the subset of queries necessary. if self.robot: @@ -372,6 +375,12 @@ class User(BaseModel): Namespace = User.alias() +class UserPromptTypes(object): + CONFIRM_USERNAME = 'confirm_username' + ENTER_NAME = 'enter_name' + ENTER_COMPANY = 'enter_company' + + class UserPromptKind(BaseModel): name = CharField(index=True) diff --git a/data/migrations/versions/491a530df230_add_user_metadata_fields.py b/data/migrations/versions/491a530df230_add_user_metadata_fields.py new file mode 100644 index 000000000..4f7cc8abd --- /dev/null +++ b/data/migrations/versions/491a530df230_add_user_metadata_fields.py @@ -0,0 +1,44 @@ +"""Add user metadata fields + +Revision ID: 491a530df230 +Revises: 6c7014e84a5e +Create Date: 2016-11-04 18:03:05.237408 + +""" + +# revision identifiers, used by Alembic. +revision = '491a530df230' +down_revision = '6c7014e84a5e' + +from alembic import op +import sqlalchemy as sa +from util.migrate import UTF8CharField + +def upgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.add_column('user', sa.Column('company', UTF8CharField(length=255), nullable=True)) + op.add_column('user', sa.Column('name', UTF8CharField(length=255), nullable=True)) + ### end Alembic commands ### + + op.bulk_insert(tables.userpromptkind, + [ + {'name':'enter_name'}, + {'name':'enter_company'}, + ]) + + +def downgrade(tables): + ### commands auto generated by Alembic - please adjust! ### + op.drop_column('user', 'name') + op.drop_column('user', 'company') + ### end Alembic commands ### + + op.execute( + (tables.userpromptkind.delete() + .where(tables.userpromptkind.c.name == op.inline_literal('enter_name'))) + ) + + op.execute( + (tables.userpromptkind.delete() + .where(tables.userpromptkind.c.name == op.inline_literal('enter_company'))) + ) diff --git a/data/model/user.py b/data/model/user.py index 90fb5c980..86e828a08 100644 --- a/data/model/user.py +++ b/data/model/user.py @@ -6,13 +6,14 @@ import uuid from peewee import JOIN_LEFT_OUTER, IntegrityError, fn from uuid import uuid4 from datetime import datetime, timedelta +from enum import Enum from data.database import (User, LoginService, FederatedLogin, RepositoryPermission, TeamMember, Team, Repository, TupleSelector, TeamRole, Namespace, Visibility, EmailConfirmation, Role, db_for_update, random_string_generator, UserRegion, ImageStorageLocation, QueueItem, TeamMemberInvite, ServiceKeyApproval, OAuthApplication, RepositoryBuildTrigger, - UserPromptKind, UserPrompt) + UserPromptKind, UserPrompt, UserPromptTypes) from data.model import (DataModelException, InvalidPasswordException, InvalidRobotException, InvalidUsernameException, InvalidEmailAddressException, TooManyLoginAttemptsException, db_transaction, @@ -28,17 +29,16 @@ logger = logging.getLogger(__name__) EXPONENTIAL_BACKOFF_SCALE = timedelta(seconds=1) - def hash_password(password, salt=None): salt = salt or bcrypt.gensalt() return bcrypt.hashpw(password.encode('utf-8'), salt) -def create_user(username, password, email, auto_verify=False, email_required=True): +def create_user(username, password, email, auto_verify=False, email_required=True, prompts=tuple()): """ Creates a regular user, if allowed. """ if not validate_password(password): raise InvalidPasswordException(INVALID_PASSWORD_MESSAGE) - created = create_user_noverify(username, email, email_required=email_required) + created = create_user_noverify(username, email, email_required=email_required, prompts=prompts) created.password_hash = hash_password(password) created.verified = auto_verify created.save() @@ -46,7 +46,7 @@ def create_user(username, password, email, auto_verify=False, email_required=Tru return created -def create_user_noverify(username, email, email_required=True): +def create_user_noverify(username, email, email_required=True, prompts=tuple()): if email_required: if not validate_email(email): raise InvalidEmailAddressException('Invalid email address: %s' % email) @@ -76,7 +76,11 @@ def create_user_noverify(username, email, email_required=True): logger.debug('Email and username are unique!') try: - return User.create(username=username, email=email) + new_user = User.create(username=username, email=email) + for prompt in prompts: + create_user_prompt(new_user, prompt) + + return new_user except Exception as ex: raise DataModelException(ex.message) @@ -103,6 +107,15 @@ def change_password(user, new_password): notification.delete_notifications_by_kind(user, 'password_required') +def get_default_user_prompts(features): + prompts = set() + if features.USER_METADATA: + prompts.add(UserPromptTypes.ENTER_NAME) + prompts.add(UserPromptTypes.ENTER_COMPANY) + + return prompts + + def has_user_prompts(user): try: UserPrompt.select().where(UserPrompt.user == user).get() @@ -110,6 +123,7 @@ def has_user_prompts(user): except UserPrompt.DoesNotExist: return False + def has_user_prompt(user, prompt_name): prompt_kind = UserPromptKind.get(name=prompt_name) @@ -341,16 +355,28 @@ def list_entity_robot_permission_teams(entity_name, include_permissions=False): return TupleSelector(query, fields) +def update_user_metadata(user, name=None, company=None): + """ Updates the metadata associated with the user, including his/her name and company. """ + with db_transaction(): + user.name = name or user.name + user.company = company or user.company + user.save() + + # Remove any prompts associated with the user's metadata being needed. + remove_user_prompt(user, UserPromptTypes.ENTER_NAME) + remove_user_prompt(user, UserPromptTypes.ENTER_COMPANY) + + def create_federated_user(username, email, service_name, service_ident, set_password_notification, metadata={}, - email_required=True, confirm_username=False): - new_user = create_user_noverify(username, email, email_required=email_required) + email_required=True, prompts=tuple()): + prompts = set(prompts) + prompts.add(UserPromptTypes.CONFIRM_USERNAME) + + new_user = create_user_noverify(username, email, email_required=email_required, prompts=prompts) 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 b78f90ae4..8b6e570cb 100644 --- a/data/users/federated.py +++ b/data/users/federated.py @@ -1,4 +1,5 @@ import logging +import features from collections import namedtuple @@ -49,11 +50,12 @@ class FederatedUsers(object): logger.error('Unable to pick a username for user: %s', username) return (None, 'Unable to pick a username. Please report this to your administrator.') + prompts = model.user.get_default_user_prompts(features) db_user = model.user.create_federated_user(valid_username, email, self._federated_service, username, set_password_notification=False, email_required=self._requires_email, - confirm_username=True) + prompts=prompts) else: # Update the db attributes from the federated service. if email: diff --git a/endpoints/api/superuser.py b/endpoints/api/superuser.py index e12070a1f..4f5a77749 100644 --- a/endpoints/api/superuser.py +++ b/endpoints/api/superuser.py @@ -260,8 +260,9 @@ class SuperUserList(ApiResource): # Create the user. username = user_information['username'] email = user_information.get('email') + prompts = model.user.get_default_user_prompts(features) user = model.user.create_user(username, password, email, auto_verify=not features.MAILING, - email_required=features.MAILING) + email_required=features.MAILING, prompts=prompts) # If mailing is turned on, send the user a verification email. if features.MAILING: diff --git a/endpoints/api/user.py b/endpoints/api/user.py index 01b58abf2..5b971791e 100644 --- a/endpoints/api/user.py +++ b/endpoints/api/user.py @@ -17,7 +17,7 @@ from auth.permissions import (AdministerOrganizationPermission, CreateRepository UserAdminPermission, UserReadPermission, SuperUserPermission) from data import model from data.billing import get_plan -from data.database import Repository as RepositoryTable +from data.database import Repository as RepositoryTable, UserPromptTypes from endpoints.api import (ApiResource, nickname, resource, validate_json_request, request_error, log_action, internal_only, require_user_admin, parse_args, query_param, require_scope, format_date, show_if, @@ -180,8 +180,8 @@ class User(ApiResource): }, 'invite_code': { 'type': 'string', - 'description': 'The optional invite code' - } + 'description': 'The optional invite code', + }, } }, 'UpdateUser': { @@ -212,7 +212,15 @@ class User(ApiResource): 'invoice_email_address': { 'type': ['string', 'null'], 'description': 'Custom email address for receiving invoices', - } + }, + 'name': { + 'type': 'string', + 'description': 'The optional entered name for the user', + }, + 'company': { + 'type': 'string', + 'description': 'The optional entered company for the user', + }, }, }, 'UserView': { @@ -326,6 +334,9 @@ class User(ApiResource): else: model.user.update_email(user, new_email, auto_verify=not features.MAILING) + if 'name' in user_data or 'company' in user_data: + model.user.update_user_metadata(user, user_data.get('name'), user_data.get('company')) + # 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: @@ -370,10 +381,12 @@ class User(ApiResource): raise request_error(message='Email address is required') try: + prompts = model.user.get_default_user_prompts(features) new_user = model.user.create_user(user_data['username'], user_data['password'], user_data.get('email'), auto_verify=not features.MAILING, - email_required=features.MAILING) + email_required=features.MAILING, + prompts=prompts) email_address_confirmed = handle_invite_code(invite_code, new_user) if features.MAILING and not email_address_confirmed: diff --git a/endpoints/oauthlogin.py b/endpoints/oauthlogin.py index 8698d6430..3d009ee9a 100644 --- a/endpoints/oauthlogin.py +++ b/endpoints/oauthlogin.py @@ -1,5 +1,4 @@ import logging - import requests from flask import request, redirect, url_for, Blueprint @@ -63,9 +62,11 @@ def conduct_oauth_login(service, user_id, username, email, metadata={}): new_username = valid break + prompts = model.user.get_default_user_prompts(features) to_login = model.user.create_federated_user(new_username, email, service_name.lower(), user_id, set_password_notification=True, - metadata=metadata, confirm_username=True) + metadata=metadata, + prompts=prompts) # Success, tell analytics analytics.track(to_login.username, 'register', {'service': service_name.lower()}) diff --git a/endpoints/web.py b/endpoints/web.py index 7e95a2217..752a77c09 100644 --- a/endpoints/web.py +++ b/endpoints/web.py @@ -399,7 +399,10 @@ def confirm_email(): user_analytics.change_email(old_email, new_email) common_login(user) - return redirect(url_for('web.user', tab='email') if new_email else url_for('web.index')) + if model.user.has_user_prompts(user): + return redirect(url_for('web.updateuser')) + else: + return redirect(url_for('web.user', tab='email') if new_email else url_for('web.index')) @web.route('/recovery', methods=['GET']) diff --git a/initdb.py b/initdb.py index d60378900..37712734a 100644 --- a/initdb.py +++ b/initdb.py @@ -397,6 +397,8 @@ def initialize_database(): LabelSourceType.create(name='internal') UserPromptKind.create(name='confirm_username') + UserPromptKind.create(name='enter_name') + UserPromptKind.create(name='enter_company') def wipe_database(): diff --git a/static/js/pages/landing.js b/static/js/pages/landing.js index 08b37ee9f..49dd076ef 100644 --- a/static/js/pages/landing.js +++ b/static/js/pages/landing.js @@ -21,7 +21,11 @@ UserService.updateUserIn($scope, function(user) { if (!user.anonymous) { - $location.path('/repository/'); + if (user.prompts && user.prompts.length) { + $location.path('/updateuser/'); + } else { + $location.path('/repository/'); + } } }); diff --git a/static/js/pages/update-user.js b/static/js/pages/update-user.js index 319f55760..faf5c2fb9 100644 --- a/static/js/pages/update-user.js +++ b/static/js/pages/update-user.js @@ -10,6 +10,7 @@ function UpdateUserCtrl($scope, UserService, $location, ApiService) { $scope.state = 'loading'; + $scope.metadata = {}; UserService.updateUserIn($scope, function(user) { if (!user.prompts || !user.prompts.length) { @@ -43,15 +44,17 @@ }); }; - $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.updateUser = function(data) { + $scope.state = 'updating'; + ApiService.changeUserDetails(data).then(function() { + UserService.load(function(updated) { + if (updated.prompts.length) { + $scope.state = 'editing'; + } else { + $location.url('/'); + } + }); + }, ApiService.errorDisplay('Could not update user information')); }; $scope.hasPrompt = function(user, prompt_name) { diff --git a/static/partials/update-user.html b/static/partials/update-user.html index 1f95479f4..ccd2c7e94 100644 --- a/static/partials/update-user.html +++ b/static/partials/update-user.html @@ -1,6 +1,6 @@
- +

Confirm Username

@@ -8,7 +8,7 @@ Docker CLI guidelines for use as a namespace in .

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

-
+
@@ -33,4 +33,38 @@ Note: Usernames with dots or dashes are incompatible with Docker verion 1.8 or older
+
+ + +
+

Tell us a bit more about yourself

+
This information will be displayed in your user profile.
+ +
+
+ +
+ + + +
+
+ +
+ +
+ + + +
+
+ +
+ + +
+
\ No newline at end of file diff --git a/test/data/test.db b/test/data/test.db index d60a97b3dd302332e7e5c7b8ba593427a57651c2..1fa5fe01d52926f9ddd8a2e14cf5045efb326dfd 100644 GIT binary patch delta 66774 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