Add collection of user metadata: name and company
This commit is contained in:
parent
909be766c9
commit
0f2eb61f4a
14 changed files with 178 additions and 33 deletions
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
Reference in a new issue