Commit 3cce570c4c63efc1d0e2e264bdd1e4c2b4a2e530
1 parent
20ce3980
Exists in
master
and in
4 other branches
Allow forking of public projects by authenticated users. Fixes #4152
Showing
1 changed file
with
22 additions
and
1 deletions
Show diff stats
app/models/ability.rb
@@ -38,10 +38,14 @@ class Ability | @@ -38,10 +38,14 @@ class Ability | ||
38 | elsif team.reporters.include?(user) | 38 | elsif team.reporters.include?(user) |
39 | rules << project_report_rules | 39 | rules << project_report_rules |
40 | 40 | ||
41 | - elsif team.guests.include?(user) or project.public? | 41 | + elsif team.guests.include?(user) |
42 | rules << project_guest_rules | 42 | rules << project_guest_rules |
43 | end | 43 | end |
44 | 44 | ||
45 | + if project.public? | ||
46 | + rules << public_project_rules | ||
47 | + end | ||
48 | + | ||
45 | if project.owner == user || user.admin? | 49 | if project.owner == user || user.admin? |
46 | rules << project_admin_rules | 50 | rules << project_admin_rules |
47 | end | 51 | end |
@@ -49,6 +53,23 @@ class Ability | @@ -49,6 +53,23 @@ class Ability | ||
49 | rules.flatten | 53 | rules.flatten |
50 | end | 54 | end |
51 | 55 | ||
56 | + def public_project_rules | ||
57 | + [ | ||
58 | + :download_code, | ||
59 | + :fork_project, | ||
60 | + :read_project, | ||
61 | + :read_wiki, | ||
62 | + :read_issue, | ||
63 | + :read_milestone, | ||
64 | + :read_project_snippet, | ||
65 | + :read_team_member, | ||
66 | + :read_merge_request, | ||
67 | + :read_note, | ||
68 | + :write_issue, | ||
69 | + :write_note | ||
70 | + ] | ||
71 | + end | ||
72 | + | ||
52 | def project_guest_rules | 73 | def project_guest_rules |
53 | [ | 74 | [ |
54 | :read_project, | 75 | :read_project, |