[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