Class: Admin::UserPermissionsController

Inherits:
ApplicationController
  • Object
show all
Includes:
AdminBulkActions, AuditLoggable
Defined in:
lib/generators/ruby_cms/templates/controllers/admin/user_permissions_controller.rb

Instance Method Summary collapse

Instance Method Details

#bulk_deleteObject



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/generators/ruby_cms/templates/controllers/admin/user_permissions_controller.rb', line 41

def bulk_delete
  ids = Array(params[:item_ids]).filter_map(&:to_i)
  user_permissions = UserPermission.where(user: @user, id: ids)
  keys = user_permissions.includes(:permission).map { |up| up.permission&.key }.compact
  count = user_permissions.count
  user_permissions.destroy_all
  audit!(:permission_revoked, target: "User:#{audit_user_email}", summary: "Revoked #{count} permission(s) from #{audit_user_email}", meta: { user_id: @user.id, count: count, permission_keys: keys })
  redirect_to admin_user_permissions_path(@user),
              notice: "#{count} permission(s) #{
                t('ruby_cms.admin.user_permissions.revoked')
              }."
end

#createObject



21
22
23
24
25
26
27
# File 'lib/generators/ruby_cms/templates/controllers/admin/user_permissions_controller.rb', line 21

def create
  if params[:template].present?
    apply_template
  else
    grant_individual_permission
  end
end

#destroyObject



29
30
31
32
33
34
35
36
37
38
39
# File 'lib/generators/ruby_cms/templates/controllers/admin/user_permissions_controller.rb', line 29

def destroy
  up = UserPermission.find_by!(user: @user, id: params[:id])
  key = up.permission&.key
  unless up.destroy
    return redirect_to admin_user_permissions_path(@user), alert: up.errors.full_messages.to_sentence
  end

  audit!(:permission_revoked, target: "Permission:#{key}", summary: "Revoked #{key} from #{audit_user_email}", meta: { user_id: @user.id, permission_key: key })
  redirect_to admin_user_permissions_path(@user),
              notice: t("ruby_cms.admin.user_permissions.revoked")
end

#indexObject



11
12
13
14
15
16
17
18
19
# File 'lib/generators/ruby_cms/templates/controllers/admin/user_permissions_controller.rb', line 11

def index
  @permissions = Permission.order(:key)
  @user_permissions = if @user
                        UserPermission.where(user: @user)
                                      .includes(:permission)
  else
                        []
  end
end