Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Uprawnienia
kicaj
post
Post #1





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


Zastanawiam sie jak zbudowac dosyc rozbudowany system uprawnien uzytkownikow, przegladalem tematy tutaj na forum, ale zaden nie rozwiazal mojego problemu do konca. Wiec tak:

Poszczegolny uzytkownik moze np.
Kod
Artykuly

1. dodawac artykuly

1.1. tylko w jednej kategorii

1.2. tylko w kilku kategoriach

1.3. dodawac w dowolnej kategorii

1.4. nie moze dodwac artykulu

2. usuwac artykuly

2.1. tylko w okreslonej kategorii

2.2. tylko w kilku okreslonych kategoriach

2.3. we wszystkich kategoriach

2.4. nie moze usuwac zadnego

3. zmieniac artykyly

3.1. tylko w okreslonej kategorii

3.2. tylko w kilku okreslonych kategoriach

3.3. we wszystkich kategoriach

3.4. nie moze zmieniac zadnego

Problem tkwi w prawie kazdym dziale, to samo bedzie w np. Newsach, Forum itp.

PRZYKLADY:
User nr 1 moze:
Dodawac artyuky tylko w jednej kategori, usuwac w 3 kategoriach, a zmieniac we wszystkich,
a User nr 2 moze:
Dodawac artykuly tylko w 2 kategoriach, nie może usuwac żadnego, a zmieniac moze tylko w 1 kategorii.

Jak to rozwiazac to dosc (jak na mnie) zaawansowane prawa uzytkowników?


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
BzikOS
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 660
Pomógł: 0
Dołączył: 28.08.2002
Skąd: Starachowice

Ostrzeżenie: (0%)
-----


Przeniesione z php Pocz.
Go to the top of the page
+Quote Post
kicaj
post
Post #3





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


Kod
x | Dzial

--|----------

1 | Artykuly

2 | Newsy

3 | Forum





 y | Funckja

----|------------

x.1 | dodawanie

x.2 | usuwanie

x.3 | zmienianie





   z | Poddzial

------|----------

x.y.1 | Sport

x.y.2 | Muzyka

x.y.3 | Szkola

x.y.4 | Film





Przyklady (tabela: glowna role odgrywa kolumna `prawa`, pozostałe napisałem jakby mnie ktos niezrozumial co zawiera `prawa`):





       | Prawa       | Dzial    | Funckja    | Poddzial/y

--------|-------------|----------|------------|-------------------------

       | 1.1.1,3     | Artykyly | Dodawanie  | Sport, Szkola

User 1 | 1.3.1,2     | Artykuly | Zmienianie | Sport, Muzyka

       | 2.2.2       | Newsy    | Usuwanie   | Muzyka

--------|-------------|----------|------------|-------------------------

User 2 | 2.2.2,3     | Newsy    | Usuwanie   | Muzyka, Szkola

       | 2.1.1,2,4   | Newsy    | Dodawanie  | Sport, Muzyka, Film


Zrobie to tak. Mniejwiecej tongue.gif

Minusami tej "konstrukcji" sa:
- nie kazdy `poddzial` pasuje do `dzialu`
- gdy usuniety zostanie np. poddzial nr 4 to musimy doscyc ciezkim sposobem odszukac gdzie jaki user go uzywal w kolumie `prawa`

Jak macie lepszy pomysl to czekam!

Ten post edytował kicaj_ 22.06.2004, 14:31:35


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
patrycjusz
post
Post #4





Grupa: Zarejestrowani
Postów: 263
Pomógł: 0
Dołączył: 13.07.2003
Skąd: wawa

Ostrzeżenie: (0%)
-----


http://phpgacl.sourceforge.net/ nie jest moze najpiekniejsze, ale zalety ma i jest bardzo latwe do implementacji w rozwiazaniach tworzonych w oparciu o MVC


--------------------
www.tigroup.pl Rozwiązania informatyczne dla sektora MSP.
Projektowanie i tworzenie stron www, dedykowane rozwiązania e-biznes, outsourcing usług programis
Go to the top of the page
+Quote Post
kicaj
post
Post #5





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

Ostrzeżenie: (0%)
-----


Znalazlem troche czasu by wrocic do tego tematu.
Wyciagnalem dane uztytkownia `User 1` z powyzszej tabeli:
  1. <?php
  2. $dzial = array( 1 => &#092;"Artykyly\", 2 => \"Newsy\", ... );
  3.  
  4. // Prawa uzytkownika `User 1`
  5. // W taki sposob beda wyciagane dane z bazy
  6. // Znak `:` odziela tzw. wiersze
  7. $prawa = &#092;"1.1.1,3:1.3.1,2:2.2.2\";
  8.  
  9. $prawa = explode( ':', $prawa);
  10.  
  11. for( $i = 0; $i <= count( $prawa ) - 1; $i++ )
  12. {
  13.     // dział: 1 = artykuly, 2 = newsy, itd
  14.     if( eregi( '^1', $prawa[$i] ) )
  15.     {
  16.         echo $prawa[$i] . &#092;" <br /> \";
  17.         
  18.         // funkcje: 1 = dodawanie, 2 = usuwanie, 3 = zmienianie/edytowanie
  19.         $rozbij = explode( '.', $prawa[$i] );
  20.         
  21.         echo &#092;"<b>Dzial: </b> \" . $rozbij[0] . \" <br /> \";         // dzial
  22.         echo &#092;"&nbsp;<b>Funckja: </b> \" . $rozbij[1] . \" <br /> \"; // funkcje
  23.              
  24.         $kat = explode( ',', $rozbij[2] );
  25.  
  26.         echo &#092;"&nbsp; <b>Kategorie: </b>\";
  27.         for( $k = 0; $k <= count( $kat ) - 1; $k++ )
  28.         {
  29.             if($k != count( $kat ) && $k != 0 ) //likwidowanie zbednych literek `i` :)
  30.             {
  31.                 echo &#092;" i \";
  32.             }
  33.             
  34.             echo $kat[$k];
  35.         }
  36.             
  37.         echo &#092;" <br /><br /> \";
  38.  
  39.     }
  40. }
  41. ?>


articles.class.php to: dzial = 1
metody w tej klasie:
dodawanie to 1
usuwanie to 2
zmienianie to 3

news.class.php to: dzial = 2
itd z kazda klasa

Zapis 1.1.1,3 jest rowny: w klasie Articles (pierwszy argument) dodaj (drugi argument) artykuly w kategoriach 1 i 3 (argumenty rozdzielane przecinkami smile.gif

Troche to zamieszane ale bedzie zaawansowane (jak dla mnie) smile.gif smile.gif

Ten post edytował kicaj_ 22.06.2004, 15:52:38


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 22:00