Sha256: 736c6818c015e01dca56c6d10407eaae1d01ccf1cba21b616ac326597df32ed8

Contents?: true

Size: 805 Bytes

Versions: 35

Compression:

Stored size: 805 Bytes

Contents

class CmPermission < ApplicationRecord
  after_create :create_hidden_permission
  after_destroy :destroy_hidden_permission

  validates :action_name, presence: true, uniqueness: { scope: %i[ar_model_name cm_role_id] }

  def create_hidden_permission
    if action_name == 'new'
      CmPermission.where(action_name: 'create', ar_model_name:, cm_role_id:).first_or_create
    elsif action_name == 'edit'
      CmPermission.where(action_name: 'update', ar_model_name:, cm_role_id:).first_or_create
    end
  end

  def destroy_hidden_permission
    if action_name == 'new'
      CmPermission.where(action_name: 'create', ar_model_name:, cm_role_id:).first&.destroy
    elsif action_name == 'edit'
      CmPermission.where(action_name: 'update', ar_model_name:, cm_role_id:).first&.destroy
    end
  end
end

Version data entries

35 entries across 35 versions & 1 rubygems

Version Path
cm-admin-4.0.0 app/models/cm_permission.rb
cm-admin-3.0.16 app/models/cm_permission.rb
cm-admin-3.0.15 app/models/cm_permission.rb
cm-admin-3.0.14 app/models/cm_permission.rb
cm-admin-3.0.13 app/models/cm_permission.rb
cm-admin-3.0.12 app/models/cm_permission.rb
cm-admin-3.0.11 app/models/cm_permission.rb
cm-admin-3.0.10 app/models/cm_permission.rb
cm-admin-3.0.9 app/models/cm_permission.rb
cm-admin-3.0.8 app/models/cm_permission.rb
cm-admin-3.0.7 app/models/cm_permission.rb
cm-admin-3.0.6 app/models/cm_permission.rb
cm-admin-3.0.5 app/models/cm_permission.rb
cm-admin-3.0.4 app/models/cm_permission.rb
cm-admin-3.0.3 app/models/cm_permission.rb
cm-admin-3.0.2 app/models/cm_permission.rb
cm-admin-3.0.1 app/models/cm_permission.rb
cm-admin-3.0.0 app/models/cm_permission.rb
cm-admin-2.4.6 app/models/cm_permission.rb
cm-admin-2.4.5 app/models/cm_permission.rb