From a1deb1992d8a3b83ef7806ac9b193a56282032c6 Mon Sep 17 00:00:00 2001 From: radhika Date: Wed, 23 Jul 2014 17:19:03 -0400 Subject: [PATCH] 3193: add manage account page to topnav. --- .../controllers/manage_account_controller.rb | 43 +++++++++++++++ .../app/views/application/index.html.erb | 2 + .../app/views/layouts/application.html.erb | 3 +- .../_show_manage_account.html.erb | 51 +++++++++++++++++ .../_show_manage_current_token.html.erb | 11 ++++ .../_show_manage_repositories.html.erb | 36 ++++++++++++ .../_show_manage_ssh_keys.html.erb | 55 +++++++++++++++++++ .../_show_manage_virtual_machines.html.erb | 35 ++++++++++++ apps/workbench/config/routes.rb | 1 + 9 files changed, 235 insertions(+), 2 deletions(-) create mode 100644 apps/workbench/app/controllers/manage_account_controller.rb create mode 100644 apps/workbench/app/views/manage_account/_show_manage_account.html.erb create mode 100644 apps/workbench/app/views/manage_account/_show_manage_current_token.html.erb create mode 100644 apps/workbench/app/views/manage_account/_show_manage_repositories.html.erb create mode 100644 apps/workbench/app/views/manage_account/_show_manage_ssh_keys.html.erb create mode 100644 apps/workbench/app/views/manage_account/_show_manage_virtual_machines.html.erb diff --git a/apps/workbench/app/controllers/manage_account_controller.rb b/apps/workbench/app/controllers/manage_account_controller.rb new file mode 100644 index 0000000000..679db1c473 --- /dev/null +++ b/apps/workbench/app/controllers/manage_account_controller.rb @@ -0,0 +1,43 @@ +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/views/application/index.html.erb b/apps/workbench/app/views/application/index.html.erb index 0e72f7a2dd..3e2a608ed7 100644 --- a/apps/workbench/app/views/application/index.html.erb +++ b/apps/workbench/app/views/application/index.html.erb @@ -13,6 +13,8 @@ Add a new user <% end %> + <% elsif controller.controller_name == 'manage_account' %> + <%# No add button is needed %> <% else %> <%= button_to({action: 'create'}, {class: 'btn btn-sm btn-primary'}) do %> diff --git a/apps/workbench/app/views/layouts/application.html.erb b/apps/workbench/app/views/layouts/application.html.erb index ec2c98bdcb..5725f40de7 100644 --- a/apps/workbench/app/views/layouts/application.html.erb +++ b/apps/workbench/app/views/layouts/application.html.erb @@ -81,8 +81,7 @@