Witam

Postanowiłem że na mojej stronie będzie podział na różne grupy użytkowników (różniące się uprawnienia), każdy użytkownik dodatkowo będzie mógł mieć większe/mniejsze uprawnienia niż grupa.
Skorzystałem z przykładu: http://akrabat.com/zend-auth-tutorial/ zaglądałem też na http://www.nabble.com/Zend_Acl---Zend_Auth...-to8781865.html zrobiłem logowanie użytkownika i pobieranie uprawnień przypisanych tylko do niego.
Jednak nie wiem jak pobrać informacje o grupie(grupach) do której należy.

Struktura bazy mniej więcej wygląda tak

  1. CREATE TABLE GROUP (
  2. groupId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  3. groupName CHAR(30) NULL,
  4. groupLevel INTEGER UNSIGNED NULL DEFAULT 1,
  5. PRIMARY KEY(groupId)
  6. );
  7.  
  8. CREATE TABLE `groupmember` (
  9. `userId` INTEGER UNSIGNED NOT NULL ,
  10. `groupId` INTEGER UNSIGNED NOT NULL
  11. ) ENGINE = MYISAM
  12.  
  13. CREATE TABLE user (
  14. userId INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  15. userName CHAR(25) NULL,
  16. userPassword CHAR(32) NULL,
  17. userLevel INTEGER UNSIGNED NULL DEFAULT 1,
  18. PRIMARY KEY(userId),
  19. );


Gdzie xxxLevel to oczywiście poziom uprawnień.

Rozwiązanie które najbardziej mi pasuje to pobranie najwyższego poziomu uprawnień jeżeli jest użytkownik przypisany do jakiejś grupy, jeżeli nie to pobranie uprawnień tylko użytkownika (mam nadzieje że jasno to wytłumaczyłem winksmiley.jpg).

Pozdrawiam.


Edit:
Chyba na mój problem nie ma obecnie rozwiązania... być może ktoś ma jakaś propozycję jak to zrobić?
Jedynie co mi przyszło na myśl to do użytkownika dodać kolumnę np. 'usetTempLevel' gdzie będzie przechowywany najwyższy poziom i będzie on zmieniany podczas dodawania/usuwania go z grupy. Jak oceniacie to rozwiązanie ?

Pozdrawiam

Edit2:
Problem (chyba) rozwiązałem smile.gif
Logowanie użytkownika robię normalnie jak w przykładach.
Jeżeli logowanie się powiodło to zwykłym poleceniem SQLa pobieram potrzebne dla mnie uprawnienia. Łączę 2 tablice i dopiero zapisuje przez getStorage()->write

Pozdrawiam