Module: Dradis::Plugins::PersistentPermissions

Extended by:
ActiveSupport::Concern
Includes:
UsageTracking
Defined in:
app/controllers/concerns/dradis/plugins/persistent_permissions.rb

Instance Method Summary collapse

Instance Method Details

#updateObject



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/controllers/concerns/dradis/plugins/persistent_permissions.rb', line 8

def update
  @user = User.authors.find(params[:id])

  Permission.transaction do
    Permission.where(component: self.class.component_name, user_id: params[:id]).destroy_all

    permission_params[:permissions]&.each do |permission|
      # Validate the permission being created is a valid value
      next unless self.class.permissions_validation.call(permission) if self.class.permissions_validation

      Permission.create!(
        component: self.class.component_name,
        name: permission,
        user_id: params[:id]
      )
    end
  end

  track_usage(event_name, { id: params[:id], params: permission_params })

  redirect_to main_app.edit_admin_user_permissions_path(params[:id]), notice: "#{@user.name}'s permissions have been updated."
end