Feature #4951

Updated by Tom Clegg over 5 years ago

For security reasons, auto-activated users are not granted access to VMs by default. This is confusing since the tutorials are mostly written on the assumption that you are logged into a VM.

When the user does not have access to a VM, the "Manage account" page should have a noticeable alert to this effect ("Many Arvados features depend on having shell access to a hosted VM, but this hasn't been set up for your account yet."), and a button titled "Request shell access". These account" (or some other wording). This should go in the 'Virtual Machines' section where the VMs would be listed normally. (If If there are any VMs the user has access to, the alert and the button should not appear.) no longer appear.

When clicked, an e-mail is sent to the site-configured admin email address, with support@curoverse.com, subject "Shell account request from Full Name (email, qr1hi-tpzed-useruuid)". "user qr1hi-tpzed-.... requests shell account". The body of the e-mail should contain could list the user's particulars (name name and institutional e-mail address) and a link to address, as well as the Admin tab date/time of the "show user" page where the VM request can be granted. request.

When the user clicks has clicked on the button, it they should disable and change its text to "Requesting..." while the get a notification that their request is in progress. @remote:true,data:{disable_with:'Requesting...'}@ -- see "Rails docs":http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-button_tag.

If there's time...

When the AJAX request completes
was received, and the email has been sent to the admin,
* the button should go back to normal.
* a div.alert-info should appear near the button saying "Shell account requested."
* set a flag in html5 local storage to remember this state.
* next time the page is displayed,
that it will be acted upon as soon as possible. It's okay if there is still no VM access, check html5 local storage and show the div.alert-info if appropriate. (This is imperfect because it won't remember state across browsers/computers, but that's OK.)

If there isn't time...

When the AJAX request completes, show an alert box (either alert() or div.alert) confirming the request has been sent, and put the
button text back to normal.
stays clickable after that.