Sha256: bb2d6099d42a92feaf62b2b3b0a61d87562f2461be8229e6fd0bdeae978b0528

Contents?: true

Size: 892 Bytes

Versions: 8

Compression:

Stored size: 892 Bytes

Contents

class CmPermission < ApplicationRecord
  
  after_create :create_hidden_permission
  after_destroy :destroy_hidden_permission

  validates :action_name, presence: true, uniqueness: {scope: :ar_model_name}

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

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

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
cm-admin-2.1.2 app/models/cm_permission.rb
cm-admin-2.1.1 app/models/cm_permission.rb
cm-admin-2.1.0 app/models/cm_permission.rb
cm-admin-2.0.2 app/models/cm_permission.rb
cm-admin-2.0.1 app/models/cm_permission.rb
cm-admin-2.0.0 app/models/cm_permission.rb
cm-admin-1.5.56 app/models/cm_permission.rb
cm-admin-1.5.55 app/models/cm_permission.rb