diff options
| author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-06-06 14:16:08 +0300 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2013-06-06 14:16:08 +0300 |
| commit | 3cce570c4c63efc1d0e2e264bdd1e4c2b4a2e530 (patch) | |
| tree | 18a723e2f9b9dcedeb08edf76fd4a847f064f878 | |
| parent | 20ce3980d3f06784a0bf617ef6d3b898ed2f1e54 (diff) | |
| download | gitlab-ce-3cce570c4c63efc1d0e2e264bdd1e4c2b4a2e530.tar.gz | |
Allow forking of public projects by authenticated users. Fixes #4152
| -rw-r--r-- | app/models/ability.rb | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/app/models/ability.rb b/app/models/ability.rb index 3e781839d57..13fbc114629 100644 --- a/app/models/ability.rb +++ b/app/models/ability.rb @@ -38,10 +38,14 @@ class Ability elsif team.reporters.include?(user) rules << project_report_rules - elsif team.guests.include?(user) or project.public? + elsif team.guests.include?(user) rules << project_guest_rules end + if project.public? + rules << public_project_rules + end + if project.owner == user || user.admin? rules << project_admin_rules end @@ -49,6 +53,23 @@ class Ability rules.flatten end + def public_project_rules + [ + :download_code, + :fork_project, + :read_project, + :read_wiki, + :read_issue, + :read_milestone, + :read_project_snippet, + :read_team_member, + :read_merge_request, + :read_note, + :write_issue, + :write_note + ] + end + def project_guest_rules [ :read_project, |
