Add ability for admin to edit user identity
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
228da2dd28
commit
270b7ce810
6 changed files with 52 additions and 6 deletions
|
@ -7,7 +7,7 @@ v 7.13.0 (unreleased)
|
|||
- Rename "Design" profile settings page to "Preferences".
|
||||
- Allow users to customize their default Dashboard page.
|
||||
- Update ssl_ciphers in Nginx example to remove DHE settings. This will deny forward secrecy for Android 2.3.7, Java 6 and OpenSSL 0.9.8
|
||||
- Admin can remove user identities
|
||||
- Admin can edit and remove user identities
|
||||
|
||||
v 7.12.0 (unreleased)
|
||||
- Fix post-receive errors on a push when an external issue tracker is configured (Stan Hu)
|
||||
|
|
|
@ -1,11 +1,21 @@
|
|||
class Admin::IdentitiesController < Admin::ApplicationController
|
||||
before_action :user, only: [:destroy]
|
||||
before_action :user
|
||||
before_action :identity
|
||||
|
||||
def edit
|
||||
end
|
||||
|
||||
def update
|
||||
if @identity.update_attributes(identity_params)
|
||||
redirect_to admin_user_path(@user), notice: 'User identity was successfully updated.'
|
||||
else
|
||||
render :edit
|
||||
end
|
||||
end
|
||||
|
||||
def destroy
|
||||
identity = user.identities.find(params[:id])
|
||||
|
||||
respond_to do |format|
|
||||
if identity.destroy
|
||||
if @identity.destroy
|
||||
format.html { redirect_to [:admin, user], notice: 'User identity was successfully removed.' }
|
||||
else
|
||||
format.html { redirect_to [:admin, user], alert: 'Failed to remove user identity.' }
|
||||
|
@ -18,4 +28,12 @@ class Admin::IdentitiesController < Admin::ApplicationController
|
|||
def user
|
||||
@user ||= User.find_by!(username: params[:user_id])
|
||||
end
|
||||
|
||||
def identity
|
||||
@identity ||= user.identities.find(params[:id])
|
||||
end
|
||||
|
||||
def identity_params
|
||||
params[:identity].permit(:provider, :extern_uid)
|
||||
end
|
||||
end
|
||||
|
|
19
app/views/admin/identities/_form.html.haml
Normal file
19
app/views/admin/identities/_form.html.haml
Normal file
|
@ -0,0 +1,19 @@
|
|||
= form_for [:admin, @user, @identity], html: { class: 'form-horizontal fieldset-form' } do |f|
|
||||
-if @identity.errors.any?
|
||||
#error_explanation
|
||||
.alert.alert-danger
|
||||
- @identity.errors.full_messages.each do |msg|
|
||||
%p= msg
|
||||
|
||||
.form-group
|
||||
= f.label :provider, class: 'control-label'
|
||||
.col-sm-10
|
||||
= f.text_field :provider, required: true, autocomplete: "off", class: 'form-control', required: true
|
||||
.form-group
|
||||
= f.label :extern_uid, class: 'control-label'
|
||||
.col-sm-10
|
||||
= f.text_field :extern_uid, required: true, autocomplete: "off", class: 'form-control', required: true
|
||||
|
||||
.form-actions
|
||||
= f.submit 'Save changes', class: "btn btn-save"
|
||||
|
|
@ -4,6 +4,9 @@
|
|||
%td
|
||||
= identity.extern_uid
|
||||
%td
|
||||
= link_to edit_admin_user_identity_path(@user, identity), class: 'btn btn-xs btn-grouped' do
|
||||
%i.fa.fa-edit
|
||||
Edit
|
||||
= link_to [:admin, @user, identity], method: :delete,
|
||||
class: 'btn btn-xs btn-danger',
|
||||
data: { confirm: "Are you sure you want to remove this identity" } do
|
||||
|
|
6
app/views/admin/identities/edit.html.haml
Normal file
6
app/views/admin/identities/edit.html.haml
Normal file
|
@ -0,0 +1,6 @@
|
|||
- page_title @user.name, "Users"
|
||||
%h3.page-title
|
||||
Edit identity for #{@user.name}
|
||||
%hr
|
||||
|
||||
= render 'form'
|
|
@ -149,7 +149,7 @@ Gitlab::Application.routes.draw do
|
|||
namespace :admin do
|
||||
resources :users, constraints: { id: /[a-zA-Z.\/0-9_\-]+/ } do
|
||||
resources :keys, only: [:show, :destroy]
|
||||
resources :identities, only: [:destroy]
|
||||
resources :identities, only: [:edit, :update, :destroy]
|
||||
|
||||
member do
|
||||
put :team_update
|
||||
|
|
Loading…
Reference in a new issue