Commit 31fdcac1612588071c08593ac3318b93f0312eec

Authored by Dmitriy Zaporozhets
1 parent 6e5b1686

UserTeam: Fixed bug when impossible to change admin flag after checked

Showing 1 changed file with 13 additions and 8 deletions   Show diff stats
lib/gitlab/user_team_manager.rb
... ... @@ -25,23 +25,28 @@ module Gitlab
25 25 def update_team_user_membership(team, member, options)
26 26 updates = {}
27 27  
28   - if options[:default_projects_access] && options[:default_projects_access].to_s != team.default_projects_access(member).to_s
29   - updates[:permission] = options[:default_projects_access]
  28 + if options[:default_projects_access].present?
  29 + default_projects_access = options[:default_projects_access].to_s
  30 +
  31 + if default_projects_access != team.default_projects_access(member).to_s
  32 + updates[:permission] = default_projects_access
  33 + end
30 34 end
31 35  
32   - if options[:group_admin].to_s != team.admin?(member).to_s
33   - updates[:group_admin] = options[:group_admin].present?
  36 + if options[:group_admin].present?
  37 + group_admin = options[:group_admin].to_s == "1" ? true : false
  38 +
  39 + if group_admin != team.admin?(member)
  40 + updates[:group_admin] = group_admin
  41 + end
34 42 end
35 43  
36 44 return true if updates.blank?
37 45  
38 46 user_team_relationship = team.user_team_user_relationships.find_by_user_id(member)
39   -
40 47 return false unless user_team_relationship.update_attributes(updates)
41 48  
42   - if updates[:permission]
43   - rebuild_project_permissions_to_member(team, member)
44   - end
  49 + rebuild_project_permissions_to_member(team, member) if updates[:permission]
45 50  
46 51 true
47 52 end
... ...