![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) ![]() ![]() |
Witam
![]() Nie mogę wymyślić najbardziej optymalnego sposobu "ograniczania" dostępu do niektórych części skryptu (narazie tylko na kartce 8) ). Chodzi mi o to że do danej części mogą mieć dostęp np. grupy(tych grup może być kilka). Jak sprawdzić czy użytkownik należy do grupy posiadającej dostęp?? (przypominam tych grup może być kilka, tak samo użytkownik może należeć do kilku grup). Nie prosze o kompletny kod, wystarczy mi tylko sam zarys "opisowy" ![]() A jeszcze jedno db nie mam opracowanej wiec w tej kwesti pelna dowolność. Z góry dzięki za pomoc ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Jak rozumiem jesli ktos nalezy do kilku grup to uprawnienia z tych grup sa sumowane?
Wiec oczywiscie osobna tabela do grup (w niej opisane uprawnienia, np. jako typ SET), tabela z userami i tabela laczaca jedno i drugie, jesli ma byc mozliwosc kilka grup do jednego usera. Teraz najlepiej przy logowaniu (tzn. zaraz po nim) pobierasz wszystkie jego uprawnienia i kopiujesz w jakis czytelny sposob do sesji, zeby nie odwolywac sie przy kazdej podstronie do bazy. No i teraz na kazdej z podstron chronionych prawami sprawdzasz z danych w sesji czy tne user ma prawo czy nie i dopuszczasz, badz odrzucasz. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) ![]() ![]() |
Hyh chyba nie do końca rozumiesz o co mi chodzi (napisałem to troche nie dokładnie), albo ja nie rozumiem dokońca Ciebie (wysoko prawdopodobne).
Może posłuże się przykładem forum. Nie będąc członkiem żadnej grupy moge widzieć kilka for (np. php.pl - design), ale nie mogę się w nich pisać. Będąc już członkiem grupy developerów mogę w tych forach pisać. Będąc w grupie moderującej jedno forum (np nieistniejaca grupa php.pl - design moderators ![]() Mam nadzieje że teraz troche jaśniej. PS. To tak nawaisem ma być skrypt forum, pisanego na własne potrzeby ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
No to nie widze przeszkod zeby do czegos takiego zastosowac to co podalem (oczywiscie bez takich uproszczen
![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) ![]() ![]() |
hmm pomysle.
A moze jeszcze jakies pomysly ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Tak.. obejrzyj sobie strukture bazy np. phpbb forum, moze podpatrzysz cos ciekawego
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
http://forum.php.pl/viewtopic.php?t=1608
a to moj wlasny przyklad (łączący w prosty sposób parę pomysłów) [php:1:d49ec08f35]<?php ### 12.2002 by DeyV function dostep($wymagane=""){ if (!$wymagane){ return(TRUE); // nie ma ograniczeń dostępu } elseif( !isset($_SESSION['UPR'] )) { return(FALSE); //nie zalogowany } for ($i=0; $i<strlen($wymagane); $i++){ if( (int)$_SESSION['UPR'][$i] < (int)$wymagane[$i] ){ return(FALSE); } } return(TRUE); }//func ?>[/php:1:d49ec08f35] Użycie: [php:1:d49ec08f35]<?php dostep('007'); //czyli wymagane uprawnienia tylko z czeciej grupy, ale za to aż 7 poziom //lub dostep('1'); //najniższe wymagania ?> ?>[/php:1:d49ec08f35] Wcześniej oczywiści należy pobrać i zapisać w sesji uprawnienia danego uzytkownika. Co ciekawe - w ten sposób można łatwo tworzyć grupy użytkowników, dodawać do nich userów, i sumować ich prawa (nakładajac na siebie odpowiednie pozycje z stringa z uprawnieniami) -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 78 Pomógł: 0 Dołączył: 25.10.2002 Skąd: z kabla:)/ czewa Ostrzeżenie: (10%) ![]() ![]() |
Pomysł fajny i ciekawy, ale na krótszą mete. Sprawdza się to do max 10 grup, przy większej ilości nie ma sensu tak tego zapisywać (już widzę ten ciąg 30 liczb dla 30 grupy :? )
Cuś jeszcze pokombinuje... moze cos wymysle ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
troszkęinaczej - ilosć grup z dowolnymi prawami moze byćdowolna.
Ograniczona jest raczej ilość praw - każda pozycja w ciągu to w końcu prawa do czegoś innego. Ale... w zamian masz możliwość dowolnego od 0 do 9 ustalanie poziomu prawa, czyli np. pozycja pierwsza to newsy, 1 - odczyt, 2 - zapis, 3 - edycja, 4 - edycja czyichś, 5 - usuwanie. Niestety - w tym przypadku nie można ustalić by ktoś np. miał 2 i 4 (bo mając 4, masz od razu 1,2 i 3) - ale w sumie zazwyczaj tak to działa -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 11:30 |