src/ApplicationBundle/Resources/views/framework/_admin_nav.html.twig line 1

Open in your IDE?
  1. {# framework/_admin_nav.html.twig
  2.    Administration sidebar for cp-shell admin pages (flipped lists reuse this via
  3.    cp_nav_partial). Mirrors the AccessControl/CompanyAdmin governance surface so the
  4.    sidebar is consistent whether you're on a bespoke ac_layout page or a flipped list.
  5.    Every link gated by cp_can_access(route) — hides unregistered routes AND admin
  6.    modules the user's role can't reach. Set `active` before including. #}
  7. {% set active = active|default('') %}
  8. {% if cp_can_access('access_control_home') %}
  9. <a class="cp-nav-link {{ active=='overview' ? 'active' : '' }}" href="{{ path('access_control_home') }}">
  10.   <span class="cp-nav-icon"><i class="material-icons">dashboard</i></span> <span>Overview</span></a>
  11. {% endif %}
  12. {% if cp_can_access('access_control_users') or cp_can_access('access_control_org') or cp_can_access('access_control_approval') or cp_can_access('access_control_module_access') or cp_can_access('system_admin_user_list') or cp_can_access('approval_settings') or cp_can_access('module_access_settings') or cp_can_access('role_and_company') %}
  13. <div class="cp-nav-sec">Access &amp; Approval</div>
  14. {% if cp_can_access('access_control_users') %}
  15. <a class="cp-nav-link {{ active=='users' ? 'active' : '' }}" href="{{ path('access_control_users') }}">
  16.   <span class="cp-nav-icon"><i class="material-icons">group</i></span> <span>Users &amp; Roles</span></a>
  17. {% endif %}
  18. {% if cp_can_access('access_control_org') %}
  19. <a class="cp-nav-link {{ active=='org' ? 'active' : '' }}" href="{{ path('access_control_org') }}">
  20.   <span class="cp-nav-icon"><i class="material-icons">account_balance</i></span> <span>Departments &amp; Positions</span></a>
  21. {% endif %}
  22. {% if cp_can_access('access_control_approval') %}
  23. <a class="cp-nav-link {{ active=='approval' ? 'active' : '' }}" href="{{ path('access_control_approval') }}">
  24.   <span class="cp-nav-icon"><i class="material-icons">device_hub</i></span> <span>Approval Layers</span></a>
  25. {% endif %}
  26. {% if cp_can_access('access_control_module_access') %}
  27. <a class="cp-nav-link {{ active=='access' ? 'active' : '' }}" href="{{ path('access_control_module_access') }}">
  28.   <span class="cp-nav-icon"><i class="material-icons">lock</i></span> <span>Module Access</span></a>
  29. {% endif %}
  30. {% if cp_can_access('system_admin_user_list') %}
  31. <a class="cp-nav-link {{ active=='users_legacy' ? 'active' : '' }}" href="{{ path('system_admin_user_list') }}">
  32.   <span class="cp-nav-icon"><i class="material-icons">settings_applications</i></span> <span>User Directory</span></a>
  33. {% endif %}
  34. {% if cp_can_access('role_and_company') %}
  35. <a class="cp-nav-link {{ active=='role_company' ? 'active' : '' }}" href="{{ path('role_and_company') }}">
  36.   <span class="cp-nav-icon"><i class="material-icons">security</i></span> <span>Roles &amp; Company</span></a>
  37. {% endif %}
  38. {% if cp_can_access('approval_settings') %}
  39. <a class="cp-nav-link {{ active=='approval_settings' ? 'active' : '' }}" href="{{ path('approval_settings') }}">
  40.   <span class="cp-nav-icon"><i class="material-icons">tune</i></span> <span>Approval Settings</span></a>
  41. {% endif %}
  42. {% if cp_can_access('module_access_settings') %}
  43. <a class="cp-nav-link {{ active=='module_access_settings' ? 'active' : '' }}" href="{{ path('module_access_settings') }}">
  44.   <span class="cp-nav-icon"><i class="material-icons">check_box</i></span> <span>Module Access Settings</span></a>
  45. {% endif %}
  46. {% endif %}
  47. {% if cp_can_access('company_admin_home') or cp_can_access('file_management_list') or cp_can_access('company_list') or cp_can_access('company_letterhead_list') or cp_can_access('document_prefix_list') or cp_can_access('notice_admin_list') %}
  48. <div class="cp-nav-sec">Company &amp; Files</div>
  49. {% if cp_can_access('company_admin_home') %}
  50. <a class="cp-nav-link {{ active=='company' ? 'active' : '' }}" href="{{ path('company_admin_home') }}">
  51.   <span class="cp-nav-icon"><i class="material-icons">business</i></span> <span>Company Admin</span></a>
  52. {% endif %}
  53. {% if cp_can_access('company_list') %}
  54. <a class="cp-nav-link {{ active=='company_list' ? 'active' : '' }}" href="{{ path('company_list') }}">
  55.   <span class="cp-nav-icon"><i class="material-icons">domain</i></span> <span>Companies</span></a>
  56. {% endif %}
  57. {% if cp_can_access('company_letterhead_list') %}
  58. <a class="cp-nav-link {{ active=='letterheads' ? 'active' : '' }}" href="{{ path('company_letterhead_list') }}">
  59.   <span class="cp-nav-icon"><i class="material-icons">description</i></span> <span>Letterheads</span></a>
  60. {% endif %}
  61. {% if cp_can_access('document_prefix_list') %}
  62. <a class="cp-nav-link {{ active=='doc_prefixes' ? 'active' : '' }}" href="{{ path('document_prefix_list') }}">
  63.   <span class="cp-nav-icon"><i class="material-icons">local_offer</i></span> <span>Document Prefixes</span></a>
  64. {% endif %}
  65. {% if cp_can_access('notice_admin_list') %}
  66. <a class="cp-nav-link {{ active=='notices_admin' ? 'active' : '' }}" href="{{ path('notice_admin_list') }}">
  67.   <span class="cp-nav-icon"><i class="material-icons">announcement</i></span> <span>Notices</span></a>
  68. {% endif %}
  69. {% if cp_can_access('file_management_list') %}
  70. <a class="cp-nav-link {{ active=='files' ? 'active' : '' }}" href="{{ path('file_management_list') }}">
  71.   <span class="cp-nav-icon"><i class="material-icons">folder</i></span> <span>Files</span></a>
  72. {% endif %}
  73. {% endif %}
  74. {% if cp_can_access('onboarding_home') or cp_can_access('company_readiness') or cp_can_access('config_readiness') %}
  75. <div class="cp-nav-sec">Readiness &amp; Setup</div>
  76. {# The setup page itself belonged in this section from the start: Company Readiness and Setup
  77.    Health both report on a configuration that /onboarding is where you actually CHANGE. It was
  78.    only ever reachable from the legacy skeleton menu. #}
  79. {% if cp_can_access('onboarding_home') %}
  80. <a class="cp-nav-link {{ active=='onboarding' ? 'active' : '' }}" href="{{ path('onboarding_home') }}">
  81.   <span class="cp-nav-icon"><i class="material-icons">flight_takeoff</i></span> <span>Setup &amp; Onboarding</span></a>
  82. {% endif %}
  83. {% if cp_can_access('company_readiness') %}
  84. <a class="cp-nav-link {{ active=='readiness' ? 'active' : '' }}" href="{{ path('company_readiness') }}">
  85.   <span class="cp-nav-icon"><i class="material-icons">assignment_turned_in</i></span> <span>Company Readiness</span></a>
  86. {% endif %}
  87. {% if cp_can_access('config_readiness') %}
  88. <a class="cp-nav-link {{ active=='setup_health' ? 'active' : '' }}" href="{{ path('config_readiness') }}">
  89.   <span class="cp-nav-icon"><i class="material-icons">local_hospital</i></span> <span>Setup Health</span></a>
  90. {% endif %}
  91. {% endif %}
  92. {% if cp_can_access('system_admin_dashboard') or cp_can_access('system_admin_module_status') or cp_can_access('notification_config_list') or cp_can_access('change_log') %}
  93. <div class="cp-nav-sec">System</div>
  94. {% if cp_can_access('system_admin_dashboard') %}
  95. <a class="cp-nav-link {{ active=='system_dashboard' ? 'active' : '' }}" href="{{ path('system_admin_dashboard') }}">
  96.   <span class="cp-nav-icon"><i class="material-icons">healing</i></span> <span>Activity Dashboard</span></a>
  97. {% endif %}
  98. {% if cp_can_access('system_admin_module_status') %}
  99. <a class="cp-nav-link {{ active=='module_status' ? 'active' : '' }}" href="{{ path('system_admin_module_status') }}">
  100.   <span class="cp-nav-icon"><i class="material-icons">view_module</i></span> <span>Module Status</span></a>
  101. {% endif %}
  102. {% if cp_can_access('notification_config_list') %}
  103. <a class="cp-nav-link {{ active=='notif_config' ? 'active' : '' }}" href="{{ path('notification_config_list') }}">
  104.   <span class="cp-nav-icon"><i class="material-icons">notifications_active</i></span> <span>Notification Config</span></a>
  105. {% endif %}
  106. {% if cp_can_access('change_log') %}
  107. <a class="cp-nav-link {{ active=='change_log' ? 'active' : '' }}" href="{{ path('change_log') }}">
  108.   <span class="cp-nav-icon"><i class="material-icons">history</i></span> <span>Change Log</span></a>
  109. {% endif %}
  110. {% endif %}