Commit e14718fb2e7202e1929d03ceea43a1c487d74f3d

Authored by Dmitriy Zaporozhets
1 parent 56b42f58

Add permission filter to teams -> members page

app/models/user_team.rb
@@ -113,5 +113,4 @@ class UserTeam < ActiveRecord::Base @@ -113,5 +113,4 @@ class UserTeam < ActiveRecord::Base
113 def admin?(member) 113 def admin?(member)
114 user_team_user_relationships.with_user(member).first.group_admin? 114 user_team_user_relationships.with_user(member).first.group_admin?
115 end 115 end
116 -  
117 end 116 end
app/views/teams/members/_member.html.haml 0 → 100644
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
  1 +- user = member.user
  2 +- allow_admin = can? current_user, :manage_user_team, @team
  3 +%li{id: dom_id(member), class: "team_member_row user_#{user.id}"}
  4 + .row
  5 + .span3
  6 + = link_to user_path(user.username), title: user.name, class: "dark" do
  7 + = image_tag gravatar_icon(user.email, 40), class: "avatar s32"
  8 + = link_to user_path(user.username), title: user.name, class: "dark" do
  9 + %strong= truncate(user.name, lenght: 40)
  10 + %br
  11 + %small.cgray= user.username
  12 +
  13 + .span5.pull-right
  14 + - if allow_admin
  15 + .pull-left
  16 + = form_for(member, as: :team_member, url: team_member_path(@team, user)) do |f|
  17 + = label_tag :group_admin do
  18 + = f.check_box :group_admin, class: 'trigger-submit'
  19 + %span Admin access
  20 +  
  21 + = f.select :permission, options_for_select(UsersProject.access_roles, @team.default_projects_access(user)), {}, class: "span2 trigger-submit"
  22 + .pull-right
  23 + - if current_user == user
  24 + %span.label.label-success This is you!
  25 + - if @team.owner == user
  26 + %span.label.label-info Owner
  27 + - elsif user.blocked?
  28 + %span.label.label-error Blocked
  29 + - elsif allow_admin
  30 + = link_to team_member_path(@team, user), confirm: remove_from_user_team_message(@team, user), method: :delete, class: "btn-tiny btn btn-remove", title: "Remove from team" do
  31 + %i.icon-minus.icon-white
app/views/teams/members/_show.html.haml
@@ -1,31 +0,0 @@ @@ -1,31 +0,0 @@
1 -- user = member.user  
2 -- allow_admin = can? current_user, :manage_user_team, @team  
3 -%li{id: dom_id(member), class: "team_member_row user_#{user.id}"}  
4 - .row  
5 - .span4  
6 - = link_to user_path(user.username), title: user.name, class: "dark" do  
7 - = image_tag gravatar_icon(user.email, 40), class: "avatar s32"  
8 - = link_to user_path(user.username), title: user.name, class: "dark" do  
9 - %strong= truncate(user.name, lenght: 40)  
10 - %br  
11 - %small.cgray= user.username  
12 -  
13 - .span7.pull-right  
14 - - if allow_admin  
15 - .pull-left  
16 - = form_for(member, as: :team_member, url: team_member_path(@team, user)) do |f|  
17 - = label_tag do  
18 - = f.check_box :group_admin, class: 'trigger-submit'  
19 - %span Admin access  
20 -    
21 - = f.select :permission, options_for_select(UsersProject.access_roles, @team.default_projects_access(user)), {}, class: "medium trigger-submit"  
22 - .pull-right  
23 - - if current_user == user  
24 - %span.btn.disabled This is you!  
25 - - if @team.owner == user  
26 - %span.btn.disabled Owner  
27 - - elsif user.blocked?  
28 - %span.btn.disabled.blocked Blocked  
29 - - elsif allow_admin  
30 - = link_to team_member_path(@team, user), confirm: remove_from_user_team_message(@team, user), method: :delete, class: "btn-tiny btn btn-remove", title: "Remove from team" do  
31 - %i.icon-minus.icon-white  
app/views/teams/members/_team.html.haml
1 -- grouped_user_team_members(@team).each do |access, members| 1 +- grouped_user_team_members(team).each do |access, members|
  2 + - access_key = Project.access_options.key(access)
  3 + - next if params[:type].present? && params[:type] != access_key.tableize
2 .ui-box 4 .ui-box
3 %h5.title 5 %h5.title
4 - = Project.access_options.key(access).pluralize 6 + = access_key.pluralize
5 %small= members.size 7 %small= members.size
6 - %ul.well-list  
7 - - members.sort_by(&:user_name).each do |up|  
8 - = render(partial: 'teams/members/show', locals: {member: up})  
9 -  
10 -  
11 -:javascript  
12 - $(function(){  
13 - $('.repo-access-select, .project-access-select').live("change", function() {  
14 - $(this.form).submit();  
15 - });  
16 - }) 8 + %ul.well-list.team-members
  9 + - members.sort_by(&:user_name).each do |member|
  10 + = render 'teams/members/member', member: member
app/views/teams/members/index.html.haml
@@ -12,6 +12,26 @@ @@ -12,6 +12,26 @@
12 %hr 12 %hr
13 13
14 14
15 -.clearfix  
16 -%div.team-table  
17 - = render partial: "teams/members/team", locals: {project: @team} 15 +.row
  16 + .span3
  17 + %ul.nav.nav-pills.nav-stacked
  18 + %li{class: ("active" if !params[:type])}
  19 + = link_to team_members_path(@team, type: nil) do
  20 + All
  21 + %li{class: ("active" if params[:type] == 'masters')}
  22 + = link_to team_members_path(@team, type: 'masters') do
  23 + Masters
  24 + %li{class: ("active" if params[:type] == 'developers')}
  25 + = link_to team_members_path(@team, type: 'developers') do
  26 + Developers
  27 + %li{class: ("active" if params[:type] == 'reporters')}
  28 + = link_to team_members_path(@team, type: 'reporters') do
  29 + Reporters
  30 + %li{class: ("active" if params[:type] == 'guests')}
  31 + = link_to team_members_path(@team, type: 'guests') do
  32 + Guests
  33 +
  34 + .span9
  35 + .clearfix
  36 + %div.team-table
  37 + = render "teams/members/team", team: @team