Commit 643a6e58 authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Improve admin user show page

Show permissions for all project.
Add ability to remove user from group if not an owner
Remove unnecessary admin controller
parent 24e26d8b
...@@ -29,4 +29,10 @@ class Admin ...@@ -29,4 +29,10 @@ class Admin
modal.hide() modal.hide()
$('.change-owner-link').show() $('.change-owner-link').show()
$('li.users_project').bind 'ajax:success', ->
Turbolinks.visit(location.href)
$('li.users_group').bind 'ajax:success', ->
Turbolinks.visit(location.href)
@Admin = Admin @Admin = Admin
class Admin::MembersController < Admin::ApplicationController
def destroy
user = User.find_by_username(params[:id])
project = Project.find_with_namespace(params[:project_id])
project.users_projects.where(user_id: user).first.destroy
redirect_to :back
end
end
...@@ -32,7 +32,15 @@ class ProjectTeam ...@@ -32,7 +32,15 @@ class ProjectTeam
end end
def find_tm(user_id) def find_tm(user_id)
project.users_projects.find_by_user_id(user_id) tm = project.users_projects.find_by_user_id(user_id)
# If user is not in project members
# we should check for group membership
if group && !tm
tm = group.users_groups.find_by_user_id(user_id)
end
tm
end end
def add_user(user, access) def add_user(user, access)
......
...@@ -95,17 +95,20 @@ ...@@ -95,17 +95,20 @@
%ul.well-list %ul.well-list
- @user.users_groups.each do |user_group| - @user.users_groups.each do |user_group|
- group = user_group.group - group = user_group.group
%li %li.users_group
%strong= link_to group.name, admin_group_path(group) %strong= link_to group.name, admin_group_path(group)
.pull-right .pull-right
%span.light= user_group.human_access %span.light= user_group.human_access
- unless user_group.owner?
= link_to group_users_group_path(group, user_group), confirm: remove_user_from_group_message(group, @user), method: :delete, remote: true, class: "btn-tiny btn btn-remove", title: 'Remove user from group' do
%i.icon-remove.icon-white
.ui-box .ui-box
.title Projects (#{@projects.count}) .title Projects (#{@projects.count})
%ul.well-list %ul.well-list
- @projects.sort_by(&:name_with_namespace).each do |project| - @projects.sort_by(&:name_with_namespace).each do |project|
- tm = project.team.find_tm(@user.id) - tm = project.team.find_tm(@user.id)
%li %li.users_project
= link_to admin_project_path(project), class: dom_class(project) do = link_to admin_project_path(project), class: dom_class(project) do
- if project.namespace - if project.namespace
= project.namespace.human_name = project.namespace.human_name
...@@ -119,7 +122,9 @@ ...@@ -119,7 +122,9 @@
%span.light Owner %span.light Owner
- else - else
%span.light= tm.human_access %span.light= tm.human_access
= link_to admin_project_member_path(project, tm.user), confirm: remove_from_project_team_message(project, @user), method: :delete, class: "btn btn-small btn-remove" do
- if tm.respond_to? :project
= link_to project_team_member_path(project, @user), confirm: remove_from_project_team_message(project, @user), remote: true, method: :delete, class: "btn-tiny btn btn-remove", title: 'Remove user from project' do
%i.icon-remove %i.icon-remove
...@@ -89,11 +89,7 @@ Gitlab::Application.routes.draw do ...@@ -89,11 +89,7 @@ Gitlab::Application.routes.draw do
resource :logs, only: [:show] resource :logs, only: [:show]
resource :background_jobs, controller: 'background_jobs', only: [:show] resource :background_jobs, controller: 'background_jobs', only: [:show]
resources :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }, only: [:index, :show]
resources :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }, only: [:index, :show] do
resources :members, only: [:destroy]
end
root to: "dashboard#index" root to: "dashboard#index"
end end
......
...@@ -44,5 +44,9 @@ module Gitlab ...@@ -44,5 +44,9 @@ module Gitlab
def human_access def human_access
Gitlab::Access.options_with_owner.key(access_field) Gitlab::Access.options_with_owner.key(access_field)
end end
def owner?
access_field == OWNER
end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment