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
modal.hide()
$('.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
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
end
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
def add_user(user, access)
......
......@@ -95,17 +95,20 @@
%ul.well-list
- @user.users_groups.each do |user_group|
- group = user_group.group
%li
%li.users_group
%strong= link_to group.name, admin_group_path(group)
.pull-right
%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
.title Projects (#{@projects.count})
%ul.well-list
- @projects.sort_by(&:name_with_namespace).each do |project|
- tm = project.team.find_tm(@user.id)
%li
%li.users_project
= link_to admin_project_path(project), class: dom_class(project) do
- if project.namespace
= project.namespace.human_name
......@@ -119,7 +122,9 @@
%span.light Owner
- else
%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
......@@ -89,11 +89,7 @@ Gitlab::Application.routes.draw do
resource :logs, only: [:show]
resource :background_jobs, controller: 'background_jobs', only: [:show]
resources :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }, only: [:index, :show] do
resources :members, only: [:destroy]
end
resources :projects, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ }, only: [:index, :show]
root to: "dashboard#index"
end
......
......@@ -44,5 +44,9 @@ module Gitlab
def human_access
Gitlab::Access.options_with_owner.key(access_field)
end
def owner?
access_field == OWNER
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