Restructure omni services and add Chatwoot research snapshot
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -0,0 +1,5 @@
|
||||
module Enterprise::ReportPolicy
|
||||
def view?
|
||||
@account_user.custom_role&.permissions&.include?('report_manage') || super
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user