Commit 187117f2 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Calculate amount of users per role by max access

Signed-off-by: default avatarDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
parent 9281cf89
......@@ -4,5 +4,9 @@ class Admin::DashboardController < Admin::ApplicationController
@users = User.order_id_desc.limit(10)
@groups = Group.order_id_desc.with_route.limit(10)
@license = License.current
# EE only
@admin_count = User.admins.count
@roles_count = ProjectAuthorization.roles_stats
end
end
......@@ -24,4 +24,21 @@ class ProjectAuthorization < ActiveRecord::Base
EOF
end
end
def self.roles_stats
connection.execute <<-EOF.strip_heredoc
SELECT CASE max(access_level)
WHEN 10 THEN 'guest'
WHEN 20 THEN 'reporter'
WHEN 30 THEN 'developer'
WHEN 40 THEN 'master'
WHEN 50 THEN 'owner'
ELSE 'unknown' END
AS kind,
count(DISTINCT user_id) AS amount
FROM #{table_name}
GROUP BY access_level
ORDER BY amount DESC;
EOF
end
end
......@@ -4,6 +4,7 @@
%div{ class: container_class }
- if @license
= render "admin/licenses/breakdown", license: @license
= render "admin/dashboard/roles_stats"
.admin-dashboard.prepend-top-default
.row
......
%div
%p Admin users: #{@admin_count}
- @roles_count.each do |row|
%p
Users with max #{row['kind']} access level:
%strong
= row['amount']
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment