[PATCH conductor 3/4] Add 'group list' UI to user profile page.
Scott Seago
sseago at redhat.com
Wed Jul 25 21:39:03 UTC 2012
---
src/app/controllers/users_controller.rb | 8 ++++++++
src/app/models/session_entity.rb | 3 +--
src/app/models/user.rb | 5 +++++
src/app/views/users/show.html.haml | 7 +++++++
src/config/locales/en.yml | 1 +
5 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/src/app/controllers/users_controller.rb b/src/app/controllers/users_controller.rb
index 0bc4658..0b8c3fe 100644
--- a/src/app/controllers/users_controller.rb
+++ b/src/app/controllers/users_controller.rb
@@ -70,6 +70,14 @@ class UsersController < ApplicationController
require_privilege(Privilege::VIEW, User) unless current_user == @user
@title = @user.name
@quota_resources = @user.quota.quota_resources
+ if current_user == user
+ SessionEntity.update_session(current_session, current_user)
+ end
+ @user_groups = @user.all_groups
+ @groups_header = [
+ { :name => t('user_groups.index.name'), :sortable => false },
+ { :name => t('user_groups.index.type'), :sortable => false },
+ ]
save_breadcrumb(user_path(@user), @user.name)
@tab_captions = ['Properties']
@details_tab = 'properties' # currently the only supported details tab
diff --git a/src/app/models/session_entity.rb b/src/app/models/session_entity.rb
index 8a0b85a..ea3f547 100644
--- a/src/app/models/session_entity.rb
+++ b/src/app/models/session_entity.rb
@@ -37,10 +37,9 @@ class SessionEntity < ActiveRecord::Base
SessionEntity.create!(:session_id => session_id, :user => user,
:entity => user.entity)
# create mappings for local groups
- user.user_groups.each do |ug|
+ user.all_groups.each do |ug|
SessionEntity.create!(:session_id => session_id, :user => user,
:entity => ug.entity)
end
- # TODO: add entities for ldap groups
end
end
diff --git a/src/app/models/user.rb b/src/app/models/user.rb
index 3d166dd..892c62c 100644
--- a/src/app/models/user.rb
+++ b/src/app/models/user.rb
@@ -141,6 +141,11 @@ class User < ActiveRecord::Base
PRESET_FILTERS_OPTIONS = []
+ def all_groups
+ self.user_groups
+ # pull and create LDAP groups here too
+ end
+
private
def self.apply_search_filter(search)
diff --git a/src/app/views/users/show.html.haml b/src/app/views/users/show.html.haml
index 813f32f..54ca9e3 100644
--- a/src/app/views/users/show.html.haml
+++ b/src/app/views/users/show.html.haml
@@ -44,6 +44,13 @@
%dt=t'users.show.last_login_ip'
%dd= @user.last_login_ip
+%section.content-section.user
+ %header
+ %h2.groups=t'users.groups'
+= filter_table(@groups_header, @user_groups) do |user_group|
+ %tr{:class => cycle('nostripe','stripe')}
+ %td= link_to user_group.name, user_group_path(user_group)
+ %td= t("user_groups.#{user_group.membership_source.downcase}")
/%section.content-section.user
/ %header
/ %h2.activity Activity
diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml
index 1fcd708..8739d7d 100644
--- a/src/config/locales/en.yml
+++ b/src/config/locales/en.yml
@@ -50,6 +50,7 @@ en:
users: "Users"
return_to: "Return to:"
users: Users
+ groups: "Groups"
confirm_delete: "Are you sure you want to delete this user?"
quick_jump: "Quick Jump:"
index:
--
1.7.6.5
More information about the aeolus-devel
mailing list