Add collection of user metadata: name and company

This commit is contained in:
Joseph Schorr 2016-11-04 17:57:55 -04:00
parent 909be766c9
commit 0f2eb61f4a
14 changed files with 178 additions and 33 deletions

View file

@ -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:

View file

@ -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: