W Drupal 7 utworzyliśmy witrynę, w której chcielibyśmy, aby niektórzy użytkownicy mieli dostęp do strony zarządzania użytkownikami i mogli tworzyć nowych użytkowników, przypisywać role itp., Ale nie chcemy im dawać dostępu do Strony ról i uprawnień.
Obecnie Drupal ma tylko 2 uprawnienia Administer Permissions
i Administer users
.
Za Administer users
zgodą użytkownik ma dostęp do strony Zarządzanie użytkownikami i może tworzyć nowych użytkowników, ale nie może przypisywać ról użytkownikom.
Jeśli użytkownik ma Administer permissions
uprawnienia, może przypisywać role użytkownikom, a także uzyskiwać dostęp do stron uprawnień i zarządzania rolami.
W jaki sposób przyznajesz użytkownikowi prawo do przypisywania ról użytkownikom, ale uniemożliwiasz mu dostęp do strony uprawnień?
Hmmm ... Interesujące, że nie wydaje się, aby istniał jednoznaczny sposób na zrobienie tego. Wydaje się, że może to być wspólna cecha ludzi. Znalazłem kilka rozwiązań:
http://drupal.org/project/protect_permissions - Jednak nie jest to jeszcze gotowe do użytku produkcyjnego.
Myślę jednak, że możesz osiągnąć to, co chcesz: http://drupal.org/project/permissions_lock
Będziesz także potrzebować: http://drupal.org/project/user_permissions
Później wydaje się, że robi coś przeciwnego do tego, co chcesz, ale ten pierwszy wydaje się robić dokładnie to, co chcesz. Nie testowałem żadnego z nich na mojej stronie deweloperów, aby upewnić się, że w 100% to będzie dla ciebie działać. Jeśli natrafię na coś innego, zaktualizuję tę odpowiedź.
źródło
Delegacja ról pozostawia lukę w zabezpieczeniach. Musisz przypisać osoby do administrowania użytkownikami, aby mogli korzystać ze strony administracyjnej i dostępnych narzędzi.
Ale jeśli to zrobisz, ta rola będzie mogła edytować nawet superadmin. Zaznacz Uważaj na uprawnienia administratora Drupala, aby uzyskać pełny opis.
Moje rozwiązanie to delegowanie ról + ten hak
źródło
Ostatnio korzystamy z modułu roleassign , który robi dokładnie to, o co prosisz. Jest zasadniczo identyczny z modułem role_delegation, ale może być alternatywą, jeśli potrzebujesz czegoś nieco innego.
Jedną z kluczowych różnic jest sposób decydowania, które role są dostępne do przypisania. Dzięki roleassign po prostu wybierasz, które chcesz udostępnić, i dodaje tylko jedno nowe uprawnienie do przypisywania tych ról:
Wygląda na to, że moduł role_delegation daje nowe uprawnienia dla każdej roli, która istnieje w serwisie:
Wydaje się, że moduł role_delegation ma prawie trzykrotnie większą liczbę instalacji i „zalecane” wydanie Drupal 8. Kolejka problemów również wydaje się być w lepszej formie, więc prawdopodobnie jest to lepsza opcja?
źródło