PDA

Zobacz pełną wersję : Logika uprawnień w Grupach użytkowników



b.pabiszczak
21-09-2011, 12:13
Witam,

Próbuje zrozumieć logikę uprawnień dla modułu GRUP w Joomla 1.7.

Z tego co da się zauważyć, logika jest całkowicie odwrócona (tzn. w większości przypadków z jakimi się spotkałem, jest tak, że element nadrzędny ma większe uprawnienia od elementu podrzędnego) można to zauważyć np.:

- w strukturze katalogów
- w strukturze firmy

W Joomla jest na odwrót, tam element zwany Public, jest na samej górze (czyli element o najniższych uprawnieniach). O ile przy prostej strukturze to nie jest problem o tyle w momencie rozbudowywania pojawia się wiele problemów np:

Jeżeli mamy strukturę wzorcową czyli:
1. Public

1.1 Registered
i w niej, chciałbym dodać kolejne struktury na zasadzie:
Pozycja ogólna: Katalog
Pozycje podległe pozycji ogólnej: Plik 1, Plik 2, Plik 3 itd.

To według zaszytej logiki autorów Joomla 1.7 nie można tego zrobić (a przynajmniej nie rozumiem jak) w ich przypadku, następną pozycją po Public > registered musiałby być:
Plik 1 a w nim Katalog
Plik 2 a w nim Katalog
Plik 3 a w nim Katalog

Tak to budując (a głupie to jest) dopiero wtedy uzyskam możliwość przydzielenia kogoś do grupy Katalog, tak, żeby miał również uprawnienia do plików w nim zawartych.

Proszę nie sugerować się, że chcę dawać uprawniania dla plików i katalogów, to tylko przykład dla lepszego zobrazowania.

zwiastun
21-09-2011, 14:54
"Logika" jest akurat taka sama, jak we wszelkich tego typu systemach. Najpierw wszyscy mają prawo do przeglądania wszystkiego co jest przeznaczone dla wszystkich . (Powszechny poziom dostępu, a. dla wszystkich). W grupie wszystkich są coraz mniejsze kręgi, które mają dostęp do dodatkowych specjalnych dla nich treści i dodatkowo przydzielane uprawnienia dostępu i modyfikacji.
W kwestii "delegowania uprawnień", jak wszędzie, "logika jest odwrócona". Z jednej strony (jednego krańca) superużytkownik ma pełnię uprawnień. z drugiej strony "wszyscy" mają tylko i wyłączeni prawo do przeglądania tego, co im udostępniono.
Uprawnienia w Joomla nie są dziedziczone! Są przydzielane za pomocą przypisywania poziomów dostępu grupom użytkowników, a użytkowników do grup.
Na wiki masz materiały objaśniające "logikę" dość przejrzyście.

b.pabiszczak
21-09-2011, 21:14
Witam, dziękuje za szybką odpowiedź. Niestety nie odpowiada to na moje pytanie, ale dziękuje za starania. Wypowiedzi swoje napisałeś bardzo skrótowo (starając się skrócić w krótkim poście 40 stron A4 wiki dotyczących ACL, za co jestem bardzo wdzięczny), ale spowodowało to we mnie pewne niezrozumienie wypowiedzi. Samo wiki opisuje uprawnienia od strony blondynki (i dobrze, ale normalnemu informatykowi, ciężko przebrnąć przez taki dokument).


W kwestii "delegowania uprawnień", jak wszędzie, "logika jest odwrócona". Z jednej strony (jednego krańca) superużytkownik ma pełnię uprawnień. z drugiej strony "wszyscy" mają tylko i wyłączeni prawo do przeglądania tego, co im udostępniono.

W tym problem, że w Joomla jest inaczej niż wszędzie. Tutaj nie ma zasady, że ktoś wyżej lub niżej w hierarchii ma większe uprawnienia. Można tak skonfigurować uprawnia, że grupa w środku, ma dostęp do większej ilości elementów niż grupa powyżej lub poniżej, co jest wbrew "mojej" logice.


Uprawnienia w Joomla nie są dziedziczone!

Tego niestety również nie rozumiem, występuje pojęcie dziedziczenia na samych uprawnieniach do jakiegoś elementu (w celu nie kopiowania każdorazowo tych samych ustawień), istnieje również pojęcie dziedziczenia w obrębie dostępu do zasobów. Jeżeli przypisze artykuł do jednej grupy (oraz poziomu dostępu) a użytkownika do innej grupy (i innego poziomu dostępu) a jedyną łączącą ich rzeczą jest istnienie w drzewie uprawnień, a użytkownik widzi artykuł, oznacza to, że dziedziczenie istnieje, bez znaczenia jak Ty to nazwiesz, dla mnie jest to dziedziczenie (uprawnień do artykułu).

----------------------------------------------------------------------------------------------

Niestety problem jest bardziej złożony, bo napisaliśmy sobie moduł, do zarządzania dostępem do zawartości artykułu (coś na wzór Content Restriction), chcieliśmy tam zastosować logikę uprawnień zaszytą w Joomla, ale po dłuższej analizie, zapewne nie da się tego w ogóle zrealizować za pomocą ACL (chociażby z tego powodu, że z założenia użytkownik może nie mieć dostępu do części treści artykułu i może go przeglądać).