Allowing to delete users

This commit is contained in:
Linus Gasser 2025-10-13 08:20:59 +02:00
parent d8e68caa12
commit c5808a4fdc
3 changed files with 21 additions and 4 deletions

View file

@ -65,6 +65,14 @@ module Admin
def edit; end
def destroy
if @user.destroy
redirect_to admin_users_path, notice: "User #{@user.name} (#{@user.email}) was successfully deleted."
else
redirect_to admin_users_path, error: "Could not delete user #{@user.name} (#{@user.email}). #{@user.errors.full_messages.join('. ')}."
end
end
private
def user_params

View file

@ -7,6 +7,7 @@ class UserDatatable < AjaxDatatablesRails::ActiveRecord
def_delegator :@view, :show_roles
def_delegator :@view, :admin_user_path
def_delegator :@view, :edit_admin_user_path
def_delegator :@view, :can?
def initialize(params, opts = {})
@view = opts[:view_context]
@ -40,6 +41,7 @@ class UserDatatable < AjaxDatatablesRails::ActiveRecord
roles: record.roles.any? ? show_roles(record.get_roles) : 'None',
view_url: admin_user_path(record),
edit_url: edit_admin_user_path(record),
delete_url: can?(:destroy, record) ? admin_user_path(record) : nil,
DT_RowId: dom_id(record)
}
end

View file

@ -66,10 +66,17 @@
"className": "actions",
"sortable": false,
"render": function (data, type, row, meta) {
return '<div class="btn-group">'+
'<a class="btn-info" href="'+row.view_url+'">View</a>'+
'<a class="btn-primary" href="'+row.edit_url+'">Edit</a>'+
'</div>';
var buttons = '<div class="btn-group">'+
'<a class="btn-info" href="'+row.view_url+'">View</a>'+
'<a class="btn-primary" href="'+row.edit_url+'">Edit</a>';
if (row.delete_url) {
buttons += '<a class="btn-danger" href="'+row.delete_url+'" '+
'data-method="delete" '+
'data-confirm="Are you sure you want to delete this user? This action cannot be undone." '+
'rel="nofollow">Delete</a>';
}
buttons += '</div>';
return buttons;
}
}
]