From: radhika Date: Thu, 24 Jul 2014 15:10:20 +0000 (-0400) Subject: 3193: add manage account action to users controller. X-Git-Tag: 1.1.0~2388^2~40 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/15b37dc4af33f1b5fe3e5ca1773ff7cb53a80607 3193: add manage account action to users controller. --- diff --git a/apps/workbench/app/controllers/manage_account_controller.rb b/apps/workbench/app/controllers/manage_account_controller.rb deleted file mode 100644 index 679db1c473..0000000000 --- a/apps/workbench/app/controllers/manage_account_controller.rb +++ /dev/null @@ -1,43 +0,0 @@ -class ManageAccountController < ApplicationController - - def model_class - AuthorizedKey - end - - def index_pane_list - %w(Manage_account) - end - - def index - # repositories current user can read / write - @repo_links = [] - Link.where(tail_uuid: current_user.uuid, - link_class: 'permission', - name: ['can_write', 'can_read']). - each do |perm_link| - @repo_links << perm_link[:head_uuid] - end - @repositories = Repository.where(uuid: @repo_links) - - # virtual machines the current user can login into - @vm_logins = {} - Link.where(tail_uuid: current_user.uuid, - link_class: 'permission', - name: 'can_login'). - each do |perm_link| - if perm_link.properties.andand[:username] - @vm_logins[perm_link.head_uuid] ||= [] - @vm_logins[perm_link.head_uuid] << perm_link.properties[:username] - end - end - @virtual_machines = VirtualMachine.where(uuid: @vm_logins.keys) - - # current user's ssh keys - filters=[["owner_uuid", "=", current_user.uuid]] - @ssh_keys = AuthorizedKey.where(key_type: 'SSH', filters: filters) - @objects = @ssh_keys - - render_index - end - -end diff --git a/apps/workbench/app/controllers/users_controller.rb b/apps/workbench/app/controllers/users_controller.rb index 0313de5aa2..8c2a68082b 100644 --- a/apps/workbench/app/controllers/users_controller.rb +++ b/apps/workbench/app/controllers/users_controller.rb @@ -210,6 +210,39 @@ class UsersController < ApplicationController end end + def manage_account + # repositories current user can read / write + repo_links = [] + Link.where(tail_uuid: current_user.uuid, + link_class: 'permission', + name: ['can_write', 'can_read']). + each do |perm_link| + repo_links << perm_link[:head_uuid] + end + @my_repositories = Repository.where(uuid: repo_links) + + # virtual machines the current user can login into + @my_vm_logins = {} + Link.where(tail_uuid: current_user.uuid, + link_class: 'permission', + name: 'can_login'). + each do |perm_link| + if perm_link.properties.andand[:username] + @my_vm_logins[perm_link.head_uuid] ||= [] + @my_vm_logins[perm_link.head_uuid] << perm_link.properties[:username] + end + end + @my_virtual_machines = VirtualMachine.where(uuid: @my_vm_logins.keys) + + # current user's ssh keys + @my_ssh_keys = AuthorizedKey.where(key_type: 'SSH', owner_uuid: current_user.uuid) + + respond_to do |f| +# f.js { render template: 'users/manage_account.js' } + f.html { render template: 'users/manage_account' } + end + end + protected def find_current_links user diff --git a/apps/workbench/app/views/manage_account/_show_manage_account.html.erb b/apps/workbench/app/views/users/_manage_account.html.erb similarity index 81% rename from apps/workbench/app/views/manage_account/_show_manage_account.html.erb rename to apps/workbench/app/views/users/_manage_account.html.erb index 06a3d44757..76a0408e0a 100644 --- a/apps/workbench/app/views/manage_account/_show_manage_account.html.erb +++ b/apps/workbench/app/views/users/_manage_account.html.erb @@ -14,7 +14,7 @@
- <%= render partial: "show_manage_#{section_id}", locals: {repositories: @repositories, virtual_machines: @virtual_machines, vm_logins: @vm_logins, ssh_keys: @ssh_keys} %> + <%= render partial: "manage_#{section_id}" %>
@@ -42,7 +42,7 @@
- <%= render partial: "show_manage_#{section_id}", locals: {repositories: @repositories, virtual_machines: @virtual_machines, ssh_keys: @ssh_keys} %> + <%= render partial: "manage_#{section_id}" %>
diff --git a/apps/workbench/app/views/manage_account/_show_manage_current_token.html.erb b/apps/workbench/app/views/users/_manage_current_token.html.erb similarity index 100% rename from apps/workbench/app/views/manage_account/_show_manage_current_token.html.erb rename to apps/workbench/app/views/users/_manage_current_token.html.erb diff --git a/apps/workbench/app/views/manage_account/_show_manage_repositories.html.erb b/apps/workbench/app/views/users/_manage_repositories.html.erb similarity index 93% rename from apps/workbench/app/views/manage_account/_show_manage_repositories.html.erb rename to apps/workbench/app/views/users/_manage_repositories.html.erb index 0733b9835a..9c6fb1e82e 100644 --- a/apps/workbench/app/views/manage_account/_show_manage_repositories.html.erb +++ b/apps/workbench/app/views/users/_manage_repositories.html.erb @@ -18,7 +18,7 @@ - <% @repositories.andand.each do |repo| %> + <% @my_repositories.andand.each do |repo| %> <%= repo[:name] %> diff --git a/apps/workbench/app/views/manage_account/_show_manage_ssh_keys.html.erb b/apps/workbench/app/views/users/_manage_ssh_keys.html.erb similarity index 79% rename from apps/workbench/app/views/manage_account/_show_manage_ssh_keys.html.erb rename to apps/workbench/app/views/users/_manage_ssh_keys.html.erb index c8245c1759..f8eec71666 100644 --- a/apps/workbench/app/views/manage_account/_show_manage_ssh_keys.html.erb +++ b/apps/workbench/app/views/users/_manage_ssh_keys.html.erb @@ -6,7 +6,7 @@ - <% @ssh_keys.andand.each do |key| %> + <% @my_ssh_keys.andand.each do |key| %> <%= key[:uuid] %> @@ -33,8 +33,8 @@ Sample ~/.ssh/config:
 Host *.arvados
   ProxyCommand ssh -p2222 turnout@switchyard.<%= current_api_host || 'xyzzy.arvadosapi.com' %> -x -a $SSH_PROXY_FLAGS %h
-<% if @vm_logins.andand.first %>
-  User <%= @vm_logins[@vm_logins.andand.keys.first].andand.first %>
+<% if @my_vm_logins.andand.first %>
+  User <%= @my_vm_logins[@my_vm_logins.andand.keys.first].andand.first %>
 <% end %>
 
@@ -43,7 +43,7 @@ Sample login command:

-ssh <%= @virtual_machines.first.andand.hostname.andand.sub('.'+current_api_host,'') or 'vm-hostname' %>.arvados
+ssh <%= @my_virtual_machines.first.andand.hostname.andand.sub('.'+current_api_host,'') or 'vm-hostname' %>.arvados
 

diff --git a/apps/workbench/app/views/manage_account/_show_manage_virtual_machines.html.erb b/apps/workbench/app/views/users/_manage_virtual_machines.html.erb similarity index 85% rename from apps/workbench/app/views/manage_account/_show_manage_virtual_machines.html.erb rename to apps/workbench/app/views/users/_manage_virtual_machines.html.erb index 8eddb69da1..46310d7dcc 100644 --- a/apps/workbench/app/views/manage_account/_show_manage_virtual_machines.html.erb +++ b/apps/workbench/app/views/users/_manage_virtual_machines.html.erb @@ -18,13 +18,13 @@ - <% @virtual_machines.andand.each do |vm| %> + <% @my_virtual_machines.andand.each do |vm| %> <%= vm[:hostname] %> - <%= @vm_logins[vm[:uuid]].andand.compact || [] %> + <%= @my_vm_logins[vm[:uuid]].andand.compact || [] %> diff --git a/apps/workbench/app/views/users/manage_account.html.erb b/apps/workbench/app/views/users/manage_account.html.erb new file mode 100644 index 0000000000..0751866cb9 --- /dev/null +++ b/apps/workbench/app/views/users/manage_account.html.erb @@ -0,0 +1 @@ +<%= render :partial => 'manage_account' %> diff --git a/apps/workbench/config/routes.rb b/apps/workbench/config/routes.rb index c7c5643829..1f3d65f1a8 100644 --- a/apps/workbench/config/routes.rb +++ b/apps/workbench/config/routes.rb @@ -66,7 +66,7 @@ ArvadosWorkbench::Application.routes.draw do get 'choose', on: :collection post 'share_with', on: :member end - get '/manage_account' => 'manage_account#index' + get '/manage_account' => 'users#manage_account' post 'actions' => 'actions#post' get 'websockets' => 'websocket#index'