Na podstawie grupy:
Base_AclCommon::get_clearance();
zwraca odpowiednie dane dla aktualnie zalogowanego użytkownika (moje akurat dla superadmina)
array(6) {
'All users' =>
string(3) "ALL"
'Admin' =>
string(5) "ADMIN"
'Superadmin' =>
string(10) "SUPERADMIN"
'Access: Employee' =>
string(15) "ACCESS:employee"
'Access: Manager' =>
string(14) "ACCESS:manager"
'Access: Moja grupa 1' =>
string(12) "ACCESS:moja1"
}
można sprawdzić coś w stylu
if (!in_array('ACCESS:manager', Base_AclCommon::get_clearance()) return;
Gdy chcemy ograniczyć tylko dla pracowników firmy X, wypadałoby zrobić coś takiego:
if (CRM_ContactsCommon::get_main_company() != $id_firmy) return;
gdzie $id_firmy to uprawniona firma.
CRM_ContactsCommon::get_main_company zwraca id firmy z pola
company_name. -1 lub pusty ciąg znaków, gdy firma nie jest przypisana lub kontakt nie istnieje.
Istnieje jeszcze trzecia opcja z wykorzystaniem uprawnień zarządzanych w panelu administratora / Permissions (jedna z pierwszych ikonek).
Najpierw trzeba raz wykonać kod
Base_AclCommon::add_permission('access_some_menu');
potem w funkcji menu sprawdzać:
if (!Base_AclCommon::check_permission('access_some_menu')) return;
Oczywiście w funkcji body (lub innej, do której prowadzi menu) też trzeba sprawdzić uprawnienia.