From 3cce570c4c63efc1d0e2e264bdd1e4c2b4a2e530 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Thu, 6 Jun 2013 14:16:08 +0300 Subject: [PATCH] Allow forking of public projects by authenticated users. Fixes #4152 --- app/models/ability.rb | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) 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, -- GitLab