Restructure omni services and add Chatwoot research snapshot

This commit is contained in:
Ruslan Bakiev
2026-02-21 11:11:27 +07:00
parent edea7a0034
commit b73babbbf6
7732 changed files with 978203 additions and 32 deletions

View File

@@ -0,0 +1,29 @@
module Enterprise::ArticlePolicy
def index?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def update?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def show?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def edit?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def create?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def destroy?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def reorder?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
end

View File

@@ -0,0 +1,25 @@
module Enterprise::CategoryPolicy
def index?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def update?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def show?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def edit?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def create?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def destroy?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
end

View File

@@ -0,0 +1,42 @@
module Enterprise::ConversationPolicy
def show?
return false unless super
return true unless custom_role_permissions?
permissions = custom_role_permissions
return true if manage_all_conversations?(permissions)
return true if permits_unassigned_manage?(permissions)
permits_participating?(permissions)
end
private
def manage_all_conversations?(permissions)
permissions.include?('conversation_manage')
end
def permits_unassigned_manage?(permissions)
return false unless permissions.include?('conversation_unassigned_manage')
unassigned_conversation? || assigned_to_user?
end
def permits_participating?(permissions)
return false unless permissions.include?('conversation_participating_manage')
assigned_to_user? || participant?
end
def unassigned_conversation?
record.assignee_id.nil?
end
def custom_role_permissions?
account_user&.custom_role_id.present?
end
def custom_role_permissions
account_user&.custom_role&.permissions || []
end
end

View File

@@ -0,0 +1,17 @@
module Enterprise::CsatSurveyResponsePolicy
def index?
@account_user.custom_role&.permissions&.include?('report_manage') || super
end
def metrics?
@account_user.custom_role&.permissions&.include?('report_manage') || super
end
def download?
@account_user.custom_role&.permissions&.include?('report_manage') || super
end
def update?
@account_user.administrator? || @account_user.custom_role&.permissions&.include?('report_manage')
end
end

View File

@@ -0,0 +1,13 @@
module Enterprise::PortalPolicy
def update?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def edit?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
def logo?
@account_user.custom_role&.permissions&.include?('knowledge_base_manage') || super
end
end

View File

@@ -0,0 +1,5 @@
module Enterprise::ReportPolicy
def view?
@account_user.custom_role&.permissions&.include?('report_manage') || super
end
end