Ответ 1
2013: project_security_spec.rb
проверить все возможности профиля, которые перечислены в ability.rb
:
(2017 GitLab 10.x: это было бы более вероятно в app/policies/project_policy.rb
)
Эти правила достаточно явны:
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,
:read_wiki,
:read_issue,
:read_milestone,
:read_project_snippet,
:read_team_member,
:read_merge_request,
:read_note,
:write_project,
:write_issue,
:write_note
]
end
def project_report_rules
project_guest_rules + [
:download_code,
:fork_project,
:write_project_snippet
]
end
def project_dev_rules
project_report_rules + [
:write_merge_request,
:write_wiki,
:push_code
]
end
Это означает:
- репортер - гость, который также может:
- скачать код,
- вывести проект,
- написать фрагмент проекта
- разработчик является репортером, который также может:
- записать запрос слияния,
- писать wiki-страницы,
- push-код