diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 9820cef1..7e842146 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -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 diff --git a/app/datatables/user_datatable.rb b/app/datatables/user_datatable.rb index 8ee1acb6..4a87f5e5 100644 --- a/app/datatables/user_datatable.rb +++ b/app/datatables/user_datatable.rb @@ -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 diff --git a/app/views/admin/users/index.html.haml b/app/views/admin/users/index.html.haml index 2556f090..aa8f8576 100644 --- a/app/views/admin/users/index.html.haml +++ b/app/views/admin/users/index.html.haml @@ -66,10 +66,17 @@ "className": "actions", "sortable": false, "render": function (data, type, row, meta) { - return '
'; + var buttons = ''; + return buttons; } } ]