A.L.E.C napisał(a):
- System uprawnień powinien być modułem. Z tego co się zorientowałem,
to jest możliwe. Wystarczy go wywoływać jako pierwszą akcję ustawiając bindings na 'pre/code:header' (baseciq wie o czym mówię ;)) lub (przy okazji) zdefiniować akcję core/init i do niej dowiązywać.
tutaj poprawka, wystarczy oczywiście dowiązanie do pre/*:*
Ponadto lekka modyfikacja pętli foreach w index.php, aby można było usunąć akcje ze stosu. Moduł działałby w ten sposób, że po prostu przeleci listę akcji w stosie i usunie z niego te do których użytkownik nie ma uprawnień (wraz z templejtami).
dodatkowo powinien usunąć dane o tych akcjach z _MODINFO, aby core/menu ich już nie widział.
Problem mam tylko z wymyśleniem ładnego i przede wszystkim szybkiego i uniwersalnego sposobu na zapis uprawnień w bazie danych (i późniejsze ich sprawdzanie). Na pewno nie tekstowo nazwy akcji/modułów. Ale w jaki sposób? Nadać każdemu modułowi unikalny identyfikator lub po prostu numer i każdej akcji w module także? Ma ktoś pomysły?
to może taka propozycja
create table rights ( userid integer NOT NULL default 0, moduleid integer NOT NULL default 0, actions text NOT NULL default '', UNIQUE KEY (userid, moduleid) )
kolumna 'actions' przechowywałaby listę identyfikatorów akcji z danego modułu, wymagałoby to dodania w modinfo.php, unikalnych identyfikatorów dla modułu i (unikalnych w obrębie modułu) identyfikatorów każdej akcji. Przy czym identyfikatory, myślę, że mogą być po prostu liczbami całkowitymi. Ewentualnie wymyślić jakiś specjalny format dla ID modułu.
uczestnicy (1)
-
A.L.E.C