Cytat(Pilsener @ 7.05.2008, 20:09:36 )

Co do pierwszego to jasno - niestety nie ma na to wygodniejszego sposobu, niż przydzielanie uprawnień na zasadzie:
pracownik 1||0||1||1||0 - itd.
pracownik 2||1||1||0||0 - itd. - najlepiej aby to było elastyczne i można było w każdej chwili dodać kolejne uprawnienie
Można też spróbować flagi:
pracownik 1||a||s||r||r
pracownik 2||a||c||d||z - np. pierwsze uprawnienie dotyczy dostępu do jednostek organizacyjnych. Flaga a - najmniejsze uprawnienia, z - największe. W dodatkowych tabelach definiujesz jaka flaga odpowiada za jakie uprawnienia lub coś w tym stylu.
Kwestię uprawnień, które proponujesz rozważałem podczas pisania fw na swoje potrzeby. Był nawet osobny wątek poruszany na tym forum. Najlepszym rozwiązaniem jest definiowanie ról, które dodawane są do grup. Następnie do grup dodawani są użytkownicy. I tak to sobie zbudowałem i to naprawdę działa super. To co proponujesz jest moim zdaniem trochę "na wyrost" i mało elastyczne.
Generalnie przy problemie, który opisałem zdefiniowałem sobie tablicę, w której zapisane są numery pracownika z przypisanymi nazwami działów. Kierowników i dyrektorów nie jest dużo. Jedyne nad czym się zastanowię to czy nie przenieść tego do osobnej tabeli. Chyba zostanę przy moim sposobie czyli dodatkowe zapytanie sql - weryfikujące dostęp. Chyba nie jest to jakiś błąd ?

Cytat(Pilsener @ 7.05.2008, 20:09:36 )

Możesz zmodyfikować akcję "pokazusera" tak, aby wyświetlała tylko informacje w ramach uprawnień
Nie za bardzo rozumię co masz na myśli...
Cytat(Pilsener @ 7.05.2008, 20:09:36 )

- ale to wiąże się praktycznie z jeszcze większą dawką zachodu niż zrobienie systemu uprawnień de novo - bo dla każdego kierownika będziesz robił jakiegoś ifa?
Nie muszę robić osobnego ifa dla każdego kierownika. Mam switch () i sprawdzam jaką rolę posiada. Moje role są sparametryzowane, czyli:
jakas_rola(user)
jakas_rola(kierownik)
jakas_rola(dyrektor)
jakas_rola(admin)
Cytat(Pilsener @ 7.05.2008, 20:09:36 )

A propo walidacji - niech już będzie ten select. Kontrolkę select tworzysz na podstawie tablicy, następnie należy sprawdzić, czy $_POST['select']['wartosc'] istnieje w tej tablicy (funkcją in_array) - to jest właśnie walidacja, bo uniemożliwiamy podstawienie do selecta innej wartości, niż oczekujemy.
No właśnie coś takiego robię przy walidacji danych z url'a (napisałem to kilka linijek wyżej), z tym, że musiałbym także zastosować to dodatkowe (weryfikujące) zapytanie sql

Pozdrawiam