Class: Isaca::Rails::Platform::ClaimsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/isaca/rails/platform/claims_controller.rb

Instance Method Summary collapse

Methods included from Authorization

#authorize_isaca_user, #claim_symbols, #user_has_privilege?

Methods included from Authentication

#authenticate, #authenticate_isaca_user, #current_isaca_user, #isaca_requires_consent?, #isaca_sign_out, #redirect_after_sign_in_or, #redirect_for_consent?, #user_signed_in?

Instance Method Details

#createObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/isaca/rails/platform/claims_controller.rb', line 5

def create
  @administrator = Isaca::Rails.configuration.user_model.find(params[:administrator_id])

  # Destroy claims that exist but need to be removed
  @administrator.claims.where(privilege: claim_symbols(claim_params, :destroyable)).destroy_all

  # Create claims that do not exist but need to be created
  claim_symbols(claim_params, :creatable).each do |claim|
    @administrator.claims.create(privilege: claim) unless user_has_privilege?(@administrator, claim)
  end

  @administrator.reload

  respond_to do |format|
    format.js
    format.html do
      redirect_to administrator_path(@administrator), notice: t('isaca.rails.claims.updated')
    end
  end
end