168 خطوط
4.5 KiB
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] ?? [];
|
|
}
|
|
}
|