diff options
author | Rémy Coutable <remy@rymai.me> | 2016-07-05 16:58:27 +0200 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-07-05 16:58:27 +0200 |
commit | 9ea80a196f14f55599ab9c9831788dd970a36966 (patch) | |
tree | 0b92a87cd75d9666c7417692c2a821c9e71571b6 /app/models/ability.rb | |
parent | 22ba5d8a7f0920f39ba33bdc4af54531ffe40b1e (diff) | |
download | gitlab-ce-9ea80a196f14f55599ab9c9831788dd970a36966.tar.gz |
Fix condition in Ability and start with cheaper checks
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'app/models/ability.rb')
-rw-r--r-- | app/models/ability.rb | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/app/models/ability.rb b/app/models/ability.rb index ec4ef287421..2c0fd0338fd 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -157,9 +157,9 @@ class Ability # Push abilities on the users team role rules.push(*project_team_rules(project.team, user)) - owner = project.owner == user || - (project.group && project.group.has_owner?(user)) || - user.admin? + owner = user.admin? || + project.owner == user || + (project.group && project.group.has_owner?(user)) if owner rules.push(*project_owner_rules) @@ -178,7 +178,7 @@ class Ability project.group.requesters.exists?(user_id: user.id) ) - rules << :request_access unless owner || project.team.member?(user) || group_member + rules << :request_access unless owner || group_member || project.team.member?(user) end if project.archived? @@ -355,8 +355,8 @@ class Ability rules = [] rules << :read_group if can_read_group?(user, group) - owner = group.has_owner?(user) || user.admin? - master = owner || user.admin? + owner = user.admin? || group.has_owner?(user) + master = owner || group.has_master?(user) # Only group masters and group owners can create new projects if master @@ -376,7 +376,7 @@ class Ability ] end - if (group.public? || (group.internal? && !user.external?)) + if group.public? || (group.internal? && !user.external?) rules << :request_access unless group.users.include?(user) end |