PDA

Zobacz pełną wersję : Joomla - edycja szablonu uprawnień użytkownika



done
10-12-2009, 09:30
Witam
Czy wie ktoś może w jaki sposób edytować szablon uprawnień użytkownika, np. Manager aby miał tylko dostęp do menu Komponenty (reszta opcji z menu ukryta)
Szukałem w bazie SQL ale nie bardzo mam punkt odniesienia.
http://obrazki.elektroda.net/22_1260372703_thumb.jpg (http://obrazki.elektroda.net/22_1260372703.jpg)
Czy wie ktoś może w jaki sposób zrobić skrót do komponentu tak jak w załączniku.

http://obrazki.elektroda.net/57_1260373235_thumb.jpg (http://obrazki.elektroda.net/57_1260373235.jpg)

Joomla! ver 1.0.12
Pozdrawiam

Spokey
10-01-2010, 23:21
Witaj! Na drugie pytanie mogę odpowiedzieć. Otworz następujący plik:
administrator->modules->mod_quickicon->mod_quickicon.php. Za dodanie nowej pozycji odpowiada fragment kodu:


if ( $user->get('gid') > 23 ) {
$link = 'sciezka dostepu do komponentu';
quickiconButton( $link, 'sciezka do ikony', 'Nazwa komponentu');
}


Wiem, że to działa pod Joomla! 1.5, ale pod wersją 1.0 nie powinno być problemu, wygląda to tak samo, lub prawie identycznie - już nie pamiętam. Sprecyzuj bardziej pierwsze pytanie. Chodzi Ci o programową zmianę uprawnień użytkownika za pomocą PHP?

done
11-01-2010, 09:20
Witam
Co do zmiany uprawnień to nie koniecznie musi to być piekny panel itp. zależy mi bardziej na edycji kodu w taki sposób aby ograniczyć kilka uprawnień Administratora i dodać mu kilka uprawnień super administratora.
Pozdrawiam

nikszal
11-01-2010, 09:26
... aby ograniczyć kilka uprawnień Administratora i dodać mu kilka uprawnień super administratora.
PozdrawiamTzn. co? Opisz dokładnie te "kilka".

done
11-01-2010, 10:25
Chodzi mi o to aby użytkownik miał tylko pełen dostęp(dodawanie/ edycja /usuwanie) do komponentu Market Place i Zoom Media Gallery. Przykładowo jesli nadam użytkownikowi uprawnienia managera to w Zoom Media Gallery zbyt wiele nie może zdziałać, natomiast jak nadam mu uprawnienia Administratora to ma prawie całe menu do dyspozycji :/
Pozdrawiam

http://obrazki.elektroda.net/57_1260373235.jpg

sunpietro
11-01-2010, 15:26
to jest dużo zabawy w kodzie Joomli! poszukaj plików w folderze administrator, tam gdzieś powinny pliki o zarządzania uprawnieniami.

Spokey
11-01-2010, 17:55
To jak porywanie się z motyką na słońce. Za dużo zachodu.. Nie wiem jak to jest w Joomla! 1.0, ponieważ ja zaczynałem już programowanie pod 1.5. Musiałbyś pogrzebać trochę w kontrolerach,lub widokach komponentów które chcesz ograniczyć. Wiem, że do badania zalogowanego użytkownika w Joomla 1.5! Służy klasa JUser, w Joomla! 1.0 też powinien być jej odpowiednik - jednak to już nie mój temat.

Jola
12-01-2010, 02:17
Witam,
nie wiem dlaczego po wejściu do panelu administratora, elementy tam wyświetlane stają się dla niektórych bardzo tajemnicze.
Strona startowa zaplecza to zestaw modułów. Kod odpowiedzialny za ich wyświetlanie znajduje się w administrator/modules
Za pokazywanie ikonek w środku odpowiada mod_quickicon
W wersji 1.0 kod nie jest szczególnie skomplikowany, np. fragment dotyczący kosza:

if ( $my->gid > 23 ) {
$link = 'index2.php?option=com_trash';
quickiconButton( $link, 'trash.png', _ADM_QI_TRASH_MANAGER );
}Jak widać zaglądać do niego mogą wszyscy mający gid>23
Itd., itd
Czyli prawie to samo o czym pisał @Spokey.

done
12-01-2010, 09:30
Z Gid'ami testowałem niestety jeśli nadamy GID 23 (manager) to owszem zniknie z menu tyle opcji ile "nie powinien" widzieć manager. Nawet jak wyciągne skrót do Zoom media gallery (w postaci ikonki) to po wejściu okazuje się, że wyświetla się komunikat nie masz uprawnień (albo masz tylko uprawnienia do oglądania bez mozliwości edycji).
Interesuje mnie gdzie jest zdefiniowana wartośc GID'ów (uprawnienia).
W ver 1.5 jest wygodnie, niestety w 1.0 instalując komponencik do edycji szablonów userów robi się niezły galimatias :/ (ale o tym juz wiele postów napisano)
Pozdrawiam

Jola
12-01-2010, 16:32
Prawda.
Każdy komponent w pliku zazwyczaj administrator/nazwa_komponentu/admin.nazwa_komponentu.php posiada wpis np.

if (!$acl->acl_check( 'administration', 'config', 'users', $my->usertype )) {
mosRedirect( 'index2.php?', _NOT_AUTH );
}Kod sprawdza uprawnienia oczytywane z funkcji acl_check() -nie radzę jej modyfikować.
Przykład dotyczy sytuacji kiedy dostęp do komponentu na tylko superadministrator.
Można dodać warunek np.

if (!$acl->acl_check( 'administration', 'config', 'users', $my->usertype ) && $my->gid != 24) Spowoduje to dodanie uprawnień dla administratora.