CRM/backend/app/Support/PermissionCatalog.php

168 خطوط
4.5 KiB
PHP

<?php
namespace App\Support;
final class PermissionCatalog
{
public const ALL = [
'view_leads',
'create_leads',
'edit_leads',
'delete_leads',
'assign_leads',
'reassign_leads',
'import_leads',
'export_leads',
'view_full_phone',
'view_all_calls',
'view_team_calls',
'view_own_calls',
'listen_recordings',
'view_campaigns',
'manage_campaigns',
'view_products',
'manage_products',
'merge_duplicates',
'view_reports',
'export_reports',
'view_scripts',
'manage_scripts',
'view_quality_reviews',
'create_quality_reviews',
'manage_users',
'manage_roles',
'manage_settings',
'view_activity_logs',
'view_admin_dashboard',
'view_supervisor_dashboard',
'view_agent_dashboard',
'view_own_tasks',
'view_team_tasks',
'view_all_tasks',
'create_tasks',
'assign_tasks',
'reassign_tasks',
'edit_own_tasks',
'edit_team_tasks',
'delete_tasks',
'complete_tasks',
'bulk_manage_tasks',
'manage_call_notes',
'pin_call_notes',
'view_pipelines',
'manage_pipelines',
'move_deals',
'close_deals',
'manage_saved_views',
'share_team_views',
'use_global_search',
'score_leads',
'view_sla',
'manage_sla',
'manage_automations',
'view_automation_logs',
'manage_custom_fields',
'acknowledge_quality_reviews',
'manage_dashboard_preferences',
'manage_notification_preferences',
'view_invoices',
'create_invoices',
'approve_invoices',
'manage_invoice_templates',
];
public const ROLE_DEFAULTS = [
'admin' => self::ALL,
'supervisor' => [
'view_leads',
'create_leads',
'edit_leads',
'assign_leads',
'reassign_leads',
'export_leads',
'view_full_phone',
'view_team_calls',
'view_own_calls',
'listen_recordings',
'view_campaigns',
'manage_campaigns',
'view_products',
'manage_products',
'merge_duplicates',
'view_reports',
'export_reports',
'view_scripts',
'manage_scripts',
'view_quality_reviews',
'create_quality_reviews',
'view_supervisor_dashboard',
'view_own_tasks',
'view_team_tasks',
'create_tasks',
'assign_tasks',
'reassign_tasks',
'edit_own_tasks',
'edit_team_tasks',
'delete_tasks',
'complete_tasks',
'bulk_manage_tasks',
'manage_call_notes',
'pin_call_notes',
'view_pipelines',
'manage_pipelines',
'move_deals',
'close_deals',
'manage_saved_views',
'share_team_views',
'use_global_search',
'score_leads',
'view_sla',
'manage_sla',
'manage_automations',
'view_automation_logs',
'acknowledge_quality_reviews',
'manage_dashboard_preferences',
'manage_notification_preferences',
'view_invoices',
'create_invoices',
'approve_invoices',
'manage_invoice_templates',
],
'agent' => [
'view_leads',
'create_leads',
'edit_leads',
'import_leads',
'view_own_calls',
'view_campaigns',
'view_products',
'view_reports',
'view_scripts',
'view_quality_reviews',
'view_agent_dashboard',
'view_own_tasks',
'create_tasks',
'edit_own_tasks',
'complete_tasks',
'manage_call_notes',
'view_pipelines',
'move_deals',
'close_deals',
'manage_saved_views',
'use_global_search',
'score_leads',
'view_sla',
'acknowledge_quality_reviews',
'manage_dashboard_preferences',
'manage_notification_preferences',
'view_invoices',
'create_invoices',
],
];
public static function forRole(string $role): array
{
return self::ROLE_DEFAULTS[$role] ?? [];
}
}