Actions
Story #3153
closed[API] Configuration option to automatically set up users (VM, repository, invite)
Status:
Resolved
Priority:
Normal
Assigned To:
Radhika Chippada
Category:
API
Target version:
Start date:
08/20/2014
Due date:
% Done:
100%
Estimated time:
(Total: 1.00 h)
Story points:
3.0
Description
Currently, after logging in for the first time (and assuming the user has not been pre-activated), a new user is in the "not invited" state: "wait for us to activate your account". An admin gets notified, and clicks the "Setup user" button on the users>show>admin tab and assigns a username / repository name.
New behavior: If apiserver is configured to auto-invite by settingauto_setup_new_users
, in a before_filter that runs before send_admin_notifications
,
- Pick a username and repository name automatically (see below)
- Do the same stuff the "setup new user" admin button does now:
- Add a repository
- Give the user write access to the repository
- Give the user login access to an existing shell VM (
auto_setup_new_users_with_vm_uuid
config variable -- if false, skip this step) - Add the user to the existing "all users" group
- Do not send the "your account is now ready" email to the user during auto-invite. (It will be obvious!)
- Send the notification email to the administrator as before, but add a phrase to
new_user.text.erb
indicating whether the new user has been setup.
- use ascii part of the e-mail address before the @ sign if unique.
- If not unique, add a number. Use this regular expression to sanitize the username:
str.match /^[_.A-Za-z0-9][-\@_.A-Za-z0-9]*\$?$/
- If it is not already there, this should go into the repository model validation.
- If email address is nil or empty or has nothing before the @ sign, skip auto-setup. (Admin will get an email notification saying the new user is not setup -- this is handled by existing code.)
- System login names are automatically excluded by the script that creates the shell users (it strips any logins that belong to users with ids < 1000).
- Rails.configuration.auto_setup_name_blacklist
- Default: arvados, git, gitolite, gitolite-admin, root, syslog
- Check blacklist from the User auto-setup method while choosing a repository/login name.
application.default.yml
:
- auto_setup_new_users: false
- auto_setup_new_users_with_vm_uuid: false
- auto_setup_new_users_with_repository: false
- Note in application.default.yml that auto_setup_new_users_with_* don't work until you turn on auto_setup_new_users.
- Don't automatically re-setup users who have been unsetup by administrator (implementing as an
after_create
filter should take care of this) - Don't re-use existing repositories or login usernames.
- Look up permission links (name=can_login, head_uuid=vm_uuid) and check
properties['username']
. If any match, this is not an acceptable name and we need to try again to make a unique name. - But do re-use existing VM!
- Look up permission links (name=can_login, head_uuid=vm_uuid) and check
- Document existing
new_users_are_active
flag in the default config file (this skips the user agreement step)
Actions