Commit 573d367be5a61e9b344e48b6678cdd8067fe6bd1
1 parent
087d7e55
Exists in
master
and in
4 other branches
Modify permissions for project and group
* Hooks and team pages allowed only for masters/owners * Group page allowed for admin * Corrent authentication for Projects controller * Hide some project elements from visitor
Showing
7 changed files
with
44 additions
and
43 deletions
Show diff stats
app/controllers/projects/hooks_controller.rb
app/controllers/projects/snippets_controller.rb
app/controllers/projects/team_members_controller.rb
app/controllers/projects_controller.rb
| 1 | -class ProjectsController < Projects::ApplicationController | |
| 1 | +class ProjectsController < ApplicationController | |
| 2 | 2 | skip_before_filter :authenticate_user!, only: [:show] |
| 3 | - skip_before_filter :project, only: [:new, :create] | |
| 4 | - skip_before_filter :repository, only: [:new, :create] | |
| 3 | + before_filter :project, except: [:new, :create] | |
| 4 | + before_filter :repository, except: [:new, :create] | |
| 5 | 5 | |
| 6 | 6 | # Authorize |
| 7 | 7 | before_filter :authorize_read_project!, except: [:index, :new, :create] | ... | ... |
app/models/ability.rb
app/models/group.rb
| ... | ... | @@ -32,6 +32,10 @@ class Group < Namespace |
| 32 | 32 | end |
| 33 | 33 | end |
| 34 | 34 | |
| 35 | + def add_user(user, group_access) | |
| 36 | + self.users_groups.create(user_id: user.id, group_access: group_access) | |
| 37 | + end | |
| 38 | + | |
| 35 | 39 | def change_owner(user) |
| 36 | 40 | self.owner = user |
| 37 | 41 | membership = users_groups.where(user_id: user.id).first | ... | ... |
app/views/projects/_clone_panel.html.haml
| ... | ... | @@ -19,37 +19,38 @@ |
| 19 | 19 | %i.icon-download-alt |
| 20 | 20 | %span.only-wide Download |
| 21 | 21 | |
| 22 | - .dropdown.pull-right | |
| 23 | - %a.dropdown-toggle.btn{href: '#', "data-toggle" => "dropdown"} | |
| 24 | - %i.icon-plus-sign-alt | |
| 25 | - %span.only-wide New | |
| 26 | - %b.caret | |
| 27 | - %ul.dropdown-menu | |
| 28 | - - if @project.issues_enabled && can?(current_user, :write_issue, @project) | |
| 29 | - %li | |
| 30 | - = link_to url_for_new_issue, title: "New Issue" do | |
| 31 | - Issue | |
| 32 | - - if @project.merge_requests_enabled && can?(current_user, :write_merge_request, @project) | |
| 33 | - %li | |
| 34 | - = link_to new_project_merge_request_path(@project), title: "New Merge Request" do | |
| 35 | - Merge Request | |
| 36 | - - if @project.snippets_enabled && can?(current_user, :write_snippet, @project) | |
| 37 | - %li | |
| 38 | - = link_to new_project_snippet_path(@project), title: "New Snippet" do | |
| 39 | - Snippet | |
| 40 | - - if can? current_user, :push_code, @project | |
| 41 | - %li.divider | |
| 42 | - %li | |
| 43 | - = link_to new_project_branch_path(@project) do | |
| 44 | - %i.icon-code-fork | |
| 45 | - Git branch | |
| 46 | - %li | |
| 47 | - = link_to new_project_tag_path(@project) do | |
| 48 | - %i.icon-tag | |
| 49 | - Git tag | |
| 22 | + - if current_user | |
| 23 | + .dropdown.pull-right | |
| 24 | + %a.dropdown-toggle.btn{href: '#', "data-toggle" => "dropdown"} | |
| 25 | + %i.icon-plus-sign-alt | |
| 26 | + %span.only-wide New | |
| 27 | + %b.caret | |
| 28 | + %ul.dropdown-menu | |
| 29 | + - if @project.issues_enabled && can?(current_user, :write_issue, @project) | |
| 30 | + %li | |
| 31 | + = link_to url_for_new_issue, title: "New Issue" do | |
| 32 | + Issue | |
| 33 | + - if @project.merge_requests_enabled && can?(current_user, :write_merge_request, @project) | |
| 34 | + %li | |
| 35 | + = link_to new_project_merge_request_path(@project), title: "New Merge Request" do | |
| 36 | + Merge Request | |
| 37 | + - if @project.snippets_enabled && can?(current_user, :write_snippet, @project) | |
| 38 | + %li | |
| 39 | + = link_to new_project_snippet_path(@project), title: "New Snippet" do | |
| 40 | + Snippet | |
| 41 | + - if can? current_user, :push_code, @project | |
| 42 | + %li.divider | |
| 43 | + %li | |
| 44 | + = link_to new_project_branch_path(@project) do | |
| 45 | + %i.icon-code-fork | |
| 46 | + Git branch | |
| 47 | + %li | |
| 48 | + = link_to new_project_tag_path(@project) do | |
| 49 | + %i.icon-tag | |
| 50 | + Git tag | |
| 50 | 51 | |
| 51 | - - if can?(current_user, :admin_team_member, @project) | |
| 52 | - %li.divider | |
| 53 | - %li | |
| 54 | - = link_to new_project_team_member_path(@project), title: "New project member" do | |
| 55 | - Project member | |
| 52 | + - if can?(current_user, :admin_team_member, @project) | |
| 53 | + %li.divider | |
| 54 | + %li | |
| 55 | + = link_to new_project_team_member_path(@project), title: "New project member" do | |
| 56 | + Project member | ... | ... |