end
if User.setup setup_params
+ if params[:groups]
+ new_groups = params[:groups].split(',').map(&:strip).compact.select{|i| !i.to_s.empty?}
+ can_login_perms = Link.where(tail_uuid: params[:user_email],
+ head_kind: 'arvados#user',
+ link_class: 'permission',
+ name: 'can_login')
+ if can_login_perms.any?
+ perm = can_login_perms.first
+ props = perm.properties
+ if new_groups != props[:groups]
+ props[:groups] = new_groups
+ perm.save!
+ end
+ end
+ end
+
format.js
else
self.render_error status: 422
end
# oid login perm
- oid_login_perms = Link.where(tail_uuid: user.email,
+ can_login_perms = Link.where(tail_uuid: user.email,
head_kind: 'arvados#user',
link_class: 'permission',
name: 'can_login')
- if oid_login_perms.any?
- prefix_properties = oid_login_perms.first.properties
- current_selections[:identity_url_prefix] = prefix_properties[:identity_url_prefix]
+ if can_login_perms.any?
+ perm_properties = can_login_perms.first.properties
+ current_selections[:identity_url_prefix] = perm_properties[:identity_url_prefix]
+ current_selections[:groups] = perm_properties[:groups].andand.join(', ')
end
# repo perm
<% disable_url_prefix = identity_url_prefix != nil %>
<% selected_repo = @current_selections[:repo_name] %>
<% selected_vm = @current_selections[:vm_uuid] %>
+ <% groups = @current_selections[:groups] %>
<input id="user_uuid" maxlength="250" name="user_uuid" type="hidden" value="<%=uuid%>">
<div class="form-group">
- <label for="email">Email</label>
+ <label for="email">Email</label>
<% if disable_email %>
<input class="form-control" id="email" maxlength="250" name="email" type="text" value="<%=email%>" disabled>
<% else %>
<label for="vm_uuid">Virtual Machine</label>
<select class="form-control" name="vm_uuid">
<option value="" <%= 'selected' unless selected_vm %>>
- Choose One:
- </option>
+ Choose One:
+ </option>
<% @vms.each do |vm| %>
<option value="<%=vm.uuid%>"
- <%= 'selected' if selected_vm == vm.uuid %>>
- <%= vm.hostname %>
- </option>
+ <%= 'selected' if selected_vm == vm.uuid %>>
+ <%= vm.hostname %>
+ </option>
<% end %>
</select>
</div>
+ <div class="groups-group">
+ <label for="groups">Groups</label>
+ <input user_email="user_email" maxlength="250" name="user_email" type="hidden" value="<%=email%>">
+ <input class="form-control" id="groups" maxlength="250" name="groups" type="text" value="<%=groups%>"
+ title="Comma separated list of groups to which this user belongs">
+ </div>
</div>
<div class="modal-footer">