X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/cf7e30873ef4b92cc8ec099b2bb344391a070e93..e40fdedbc285a0fa6af16e41b5b4f72e46e9987d:/apps/workbench/app/controllers/users_controller.rb diff --git a/apps/workbench/app/controllers/users_controller.rb b/apps/workbench/app/controllers/users_controller.rb index b9f43ba76a..a98bb11a99 100644 --- a/apps/workbench/app/controllers/users_controller.rb +++ b/apps/workbench/app/controllers/users_controller.rb @@ -1,7 +1,7 @@ class UsersController < ApplicationController skip_before_filter :find_object_by_uuid, :only => [:welcome, :activity] skip_around_filter :thread_with_mandatory_api_token, :only => :welcome - before_filter :ensure_current_user_is_admin, only: :sudo + before_filter :ensure_current_user_is_admin, only: [:sudo, :unsetup] def welcome if current_user @@ -19,6 +19,7 @@ class UsersController < ApplicationController jobs: {}, pipeline_instances: {} } + @total_activity = {} @spans = [['This week', Time.now.beginning_of_week, Time.now], ['Last week', Time.now.beginning_of_week.advance(weeks:-1), @@ -49,12 +50,17 @@ class UsersController < ApplicationController @user_activity[record.modified_by_user_uuid] ||= {} @user_activity[record.modified_by_user_uuid][span + ' ' + type.to_s] ||= 0 @user_activity[record.modified_by_user_uuid][span + ' ' + type.to_s] += 1 + @total_activity[span + ' ' + type.to_s] ||= 0 + @total_activity[span + ' ' + type.to_s] += 1 end end end @users = @users.sort_by do |a| [-@user_activity[a.uuid].values.inject(:+), a.full_name] end + # Prepend a "Total" pseudo-user to the sorted list + @user_activity[nil] = @total_activity + @users = [OpenStruct.new(uuid: nil)] + @users end def show_pane_list @@ -65,6 +71,14 @@ class UsersController < ApplicationController end end + def index_pane_list + if current_user.andand.is_admin + super | %w(Activity) + else + super + end + end + def sudo resp = $arvados_api_client.api(ApiClientAuthorization, '', { api_client_authorization: { @@ -123,4 +137,12 @@ class UsersController < ApplicationController f.html { render template: 'users/home' } end end + + def unsetup + if current_user.andand.is_admin + @object.unsetup @object + end + show + end + end