Restructure omni services and add Chatwoot research snapshot
This commit is contained in:
42
research/chatwoot/enterprise/app/models/custom_role.rb
Normal file
42
research/chatwoot/enterprise/app/models/custom_role.rb
Normal file
@@ -0,0 +1,42 @@
|
||||
# == Schema Information
|
||||
#
|
||||
# Table name: custom_roles
|
||||
#
|
||||
# id :bigint not null, primary key
|
||||
# description :string
|
||||
# name :string
|
||||
# permissions :text default([]), is an Array
|
||||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# account_id :bigint not null
|
||||
#
|
||||
# Indexes
|
||||
#
|
||||
# index_custom_roles_on_account_id (account_id)
|
||||
#
|
||||
#
|
||||
|
||||
# Available permissions for custom roles:
|
||||
# - 'conversation_manage': Can manage all conversations.
|
||||
# - 'conversation_unassigned_manage': Can manage unassigned conversations and assign to self.
|
||||
# - 'conversation_participating_manage': Can manage conversations they are participating in (assigned to or a participant).
|
||||
# - 'contact_manage': Can manage contacts.
|
||||
# - 'report_manage': Can manage reports.
|
||||
# - 'knowledge_base_manage': Can manage knowledge base portals.
|
||||
|
||||
class CustomRole < ApplicationRecord
|
||||
belongs_to :account
|
||||
has_many :account_users, dependent: :nullify
|
||||
|
||||
PERMISSIONS = %w[
|
||||
conversation_manage
|
||||
conversation_unassigned_manage
|
||||
conversation_participating_manage
|
||||
contact_manage
|
||||
report_manage
|
||||
knowledge_base_manage
|
||||
].freeze
|
||||
|
||||
validates :name, presence: true
|
||||
validates :permissions, inclusion: { in: PERMISSIONS }
|
||||
end
|
||||
Reference in New Issue
Block a user