Commit 1dd0feacc7ba885c53da74028ee081a5a08e05ca

Authored by Andrey Kumanyaev
Committed by Dmitriy Zaporozhets
1 parent 497f7ab5

move Team_members controller into project (conflicts with team/members controller)

app/controllers/admin/projects/application_controller.rb 0 → 100644
... ... @@ -0,0 +1,11 @@
  1 +# Provides a base class for Admin controllers to subclass
  2 +#
  3 +# Automatically sets the layout and ensures an administrator is logged in
  4 +class Admin::Projects::ApplicationController < Admin::ApplicationController
  5 +
  6 + protected
  7 +
  8 + def project
  9 + @project ||= Project.find_by_path(params[:project_id])
  10 + end
  11 +end
... ...
app/controllers/admin/projects/members_controller.rb 0 → 100644
... ... @@ -0,0 +1,32 @@
  1 +class Admin::Projects::MembersController < Admin::Projects::ApplicationController
  2 + def edit
  3 + @member = team_member
  4 + @project = project
  5 + @team_member_relation = team_member_relation
  6 + end
  7 +
  8 + def update
  9 + if team_member_relation.update_attributes(params[:team_member])
  10 + redirect_to [:admin, project], notice: 'Project Access was successfully updated.'
  11 + else
  12 + render action: "edit"
  13 + end
  14 + end
  15 +
  16 + def destroy
  17 + team_member_relation.destroy
  18 +
  19 + redirect_to :back
  20 + end
  21 +
  22 + private
  23 +
  24 + def team_member
  25 + @member ||= project.users.find(params[:id])
  26 + end
  27 +
  28 + def team_member_relation
  29 + team_member.users_projects.find_by_project_id(project)
  30 + end
  31 +
  32 +end
... ...
app/controllers/admin/team_members_controller.rb
... ... @@ -1,22 +0,0 @@
1   -class Admin::TeamMembersController < Admin::ApplicationController
2   - def edit
3   - @admin_team_member = UsersProject.find(params[:id])
4   - end
5   -
6   - def update
7   - @admin_team_member = UsersProject.find(params[:id])
8   -
9   - if @admin_team_member.update_attributes(params[:team_member])
10   - redirect_to [:admin, @admin_team_member.project], notice: 'Project Access was successfully updated.'
11   - else
12   - render action: "edit"
13   - end
14   - end
15   -
16   - def destroy
17   - @admin_team_member = UsersProject.find(params[:id])
18   - @admin_team_member.destroy
19   -
20   - redirect_to :back
21   - end
22   -end
app/models/project.rb
... ... @@ -494,6 +494,11 @@ class Project &lt; ActiveRecord::Base
494 494 http_url = [Gitlab.config.gitlab.url, "/", path_with_namespace, ".git"].join('')
495 495 end
496 496  
  497 + def project_access_human(member)
  498 + project_user_relation = self.users_projects.find_by_user_id(member.id)
  499 + self.class.access_options.key(project_user_relation.project_access)
  500 + end
  501 +
497 502 # Check if current branch name is marked as protected in the system
498 503 def protected_branch? branch_name
499 504 protected_branches.map(&:name).include?(branch_name)
... ...
app/views/admin/projects/members/_form.html.haml 0 → 100644
... ... @@ -0,0 +1,16 @@
  1 += form_for @team_member_relation, as: :team_member, url: admin_project_member_path(@project, @member) do |f|
  2 + -if @team_member_relation.errors.any?
  3 + .alert-message.block-message.error
  4 + %ul
  5 + - @team_member_relation.errors.full_messages.each do |msg|
  6 + %li= msg
  7 +
  8 + .clearfix
  9 + %label Project Access:
  10 + .input
  11 + = f.select :project_access, options_for_select(Project.access_options, @team_member_relation.project_access), {}, class: "project-access-select chosen span3"
  12 +
  13 + %br
  14 + .actions
  15 + = f.submit 'Save', class: "btn primary"
  16 + = link_to 'Cancel', :back, class: "btn"
... ...
app/views/admin/projects/members/edit.html.haml 0 → 100644
... ... @@ -0,0 +1,8 @@
  1 +%p.slead
  2 + Edit access for
  3 + = link_to @member.name, admin_user_path(@member)
  4 + in
  5 + = link_to @project.name_with_namespace, admin_project_path(@project)
  6 +
  7 +%hr
  8 += render 'form'
... ...
app/views/admin/projects/show.html.haml
... ... @@ -114,7 +114,7 @@
114 114 %h5
115 115 Team
116 116 %small
117   - (#{@project.users_projects.count})
  117 + (#{@project.users.count})
118 118 %br
119 119 %table.zebra-striped.team_members
120 120 %thead
... ... @@ -124,13 +124,13 @@
124 124 %th Repository Access
125 125 %th
126 126  
127   - - @project.users_projects.each do |tm|
  127 + - @project.users.each do |tm|
128 128 %tr
129 129 %td
130   - = link_to tm.user_name, admin_user_path(tm.user)
131   - %td= tm.project_access_human
132   - %td= link_to 'Edit Access', edit_admin_team_member_path(tm), class: "btn small"
133   - %td= link_to 'Remove from team', admin_team_member_path(tm), confirm: 'Are you sure?', method: :delete, class: "btn danger small"
  130 + = link_to tm.name, admin_user_path(tm)
  131 + %td= @project.project_access_human(tm)
  132 + %td= link_to 'Edit Access', edit_admin_project_member_path(@project, tm), class: "btn small"
  133 + %td= link_to 'Remove from team', admin_project_member_path(@project, tm), confirm: 'Are you sure?', method: :delete, class: "btn danger small"
134 134  
135 135 %br
136 136 %h5 Add new team member
... ...
app/views/admin/team_members/_form.html.haml
... ... @@ -1,16 +0,0 @@
1   -= form_for @admin_team_member, as: :team_member, url: admin_team_member_path(@admin_team_member) do |f|
2   - -if @admin_team_member.errors.any?
3   - .alert-message.block-message.error
4   - %ul
5   - - @admin_team_member.errors.full_messages.each do |msg|
6   - %li= msg
7   -
8   - .clearfix
9   - %label Project Access:
10   - .input
11   - = f.select :project_access, options_for_select(Project.access_options, @admin_team_member.project_access), {}, class: "project-access-select chosen span3"
12   -
13   - %br
14   - .actions
15   - = f.submit 'Save', class: "btn primary"
16   - = link_to 'Cancel', :back, class: "btn"
app/views/admin/team_members/edit.html.haml
... ... @@ -1,8 +0,0 @@
1   -%p.slead
2   - Edit access for
3   - = link_to @admin_team_member.user_name, admin_user_path(@admin_team_member)
4   - in
5   - = link_to @admin_team_member.project.name_with_namespace, admin_project_path(@admin_team_member)
6   -
7   -%hr
8   -= render 'form'
config/routes.rb
... ... @@ -68,6 +68,9 @@ Gitlab::Application.routes.draw do
68 68 get :team
69 69 put :team_update
70 70 end
  71 + scope module: :projects do
  72 + resources :members, only: [:edit, :update, :destroy]
  73 + end
71 74 end
72 75 resources :teams do #, constraints: { id: /[^\/]+/ } do end
73 76 scope module: :teams do
... ... @@ -75,7 +78,6 @@ Gitlab::Application.routes.draw do
75 78 resources :projects, only: [:edit, :update, :destroy, :new, :create]
76 79 end
77 80 end
78   - resources :team_members, only: [:edit, :update, :destroy]
79 81 resources :hooks, only: [:index, :create, :destroy] do
80 82 get :test
81 83 end
... ...
spec/controllers/admin/projects/members_controller_spec.rb 0 → 100644
... ... @@ -0,0 +1,26 @@
  1 +require 'spec_helper'
  2 +
  3 +describe Admin::Projects::MembersController do
  4 +
  5 + describe "GET 'edit'" do
  6 + it "returns http success" do
  7 + get 'edit'
  8 + response.should be_success
  9 + end
  10 + end
  11 +
  12 + describe "GET 'update'" do
  13 + it "returns http success" do
  14 + get 'update'
  15 + response.should be_success
  16 + end
  17 + end
  18 +
  19 + describe "GET 'destroy'" do
  20 + it "returns http success" do
  21 + get 'destroy'
  22 + response.should be_success
  23 + end
  24 + end
  25 +
  26 +end
... ...