Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony] $this->getUser()->clearCredentials(); nie działą, dlaczego
stachuf11
post
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

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


Witam
Dlaczego polecenie $this->getUser()->clearCredentials(); nie czyści mi Credentials, po wywołaniu tego polecenia,
pobieram informacje z $this->getUser()->getAttribute tak jak przed czyszczeniem, dlaczego
Stachu
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Z tego samego powodu dlaczego po odkręceniu koła w samochodzie nadal można używać klaksonu.

Atrybuty i uprawnienia to różne rzeczy.
Go to the top of the page
+Quote Post
stachuf11
post
Post #3





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

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


Jak to


  1. <?php
  2. $sesia=$this->getUser();
  3. if (!$sesia->hasCredential('rezerwacja'))
  4. $sesia->addCredential('rezerwacja');
  5. $sesia->setAttribute('daty',$staredaty,'rezerwacja');
  6. ?>


czyli wstawiam atrybut do credentiala,
pozniej sobie czytam

  1. <?php
  2. $daty=$this->getUser()->getAttribute('daty','','rezerwacja');
  3. // i czyszcze credentiala
  4. $this->getUser()->removeCredential('rezerwacja'); 
  5. // pomimo to moge ponownie odczytac dane 
  6. $daty=$this->getUser()->getAttribute('daty','','rezerwacja');
  7. // dlaczego, jak wyczyscic credentiala "rezerwacja" lub atrybut "daty" w credentialu "rezerwacja"
  8. ?>


pozdrawiam
Stachu

Ten post edytował stachuf11 21.01.2008, 11:27:19
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Powyższy przykład działa jak należ tak ma być.

@stachuf11 Mam pytanie do Ciebie co robi? setAttribute() i getAttribute() ?
Go to the top of the page
+Quote Post
stachuf11
post
Post #5





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

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


No wiadomo że
  1. <?php
  2. $sesia->setAttribute('daty',$staredaty,'rezerwacja');
  3. ?>

ustawia atrybut 'daty' do kredentiala 'rezerwacja' o wartosci $staredaty
a
  1. <?php
  2. $daty=$this->getUser()->getAttribute('daty','','rezerwacja');
  3. ?>


pobiera wartość atrybutu 'daty' z credentiala 'rezerwacja', ale ta odpowiedz nie pomoze mi w rozwiazaniu problemu, jak usunąć atrybut 'daty' z credentiala 'rezerwacja'.
pozdrawiam
Stachu
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(stachuf11 @ 21.01.2008, 12:10:59 ) *
ustawia atrybut 'daty' do kredentiala 'rezerwacja' o wartosci $staredaty
(...)
pobiera wartość atrybutu 'daty' z credentiala 'rezerwacja',
Obawiam się, że masz problem dlatego że pomieszałeś dwie rzeczy.
I Attributes i Credentials są zapisywane do sesji. Natomiast to są rozłączne rzeczy.
Attributes to po prostu atrybuty użytkownika, to nie są uprawnienia! Możesz tam wrzucać dowolne informacje związane z użytkownikiem, do których chcesz mieć dostęp podczas sesji użytkownika.
Nadawanie użytkownikowi praw to Credentials. Jeśli je wyczyścisz to nie ma on praw dostępu, które miał. Ale nie ma to żadnego związku z atrybutami pozostałej sesji.

Twój problem polega na tym że do atrybutów (Attributes) wkładasz informacje związane z uprawnieniami (Credentials) a nie ma takiej potrzeby.
Jeśli natomiast już tak masz co samo removeCredential() nie wystarczy bo to usunie uprawnienia z Credentials a że Ty masz je zapisane również w Attributes to musisz sam stamtąd je wywalić.

Przeczytaj sobie dokładnie The Book :: Action Security. Zrozumiesz ten mechanizm.
Go to the top of the page
+Quote Post
stachuf11
post
Post #7





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

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


Czyli
  1. <?php
  2. $this->getUser()->getAttributeHolder()->remove('daty');
  3. // usunie atrybut daty, nizależnie do jakiego credentiala atrybut był przypisany?, jak usunąć atrybut przypisany do konkretnego credentiala
  4. // bo mam wiele atrybutów a takiej samej nazwie a przypisane są do różnych credentiali
  5. ?>


Ten post edytował stachuf11 21.01.2008, 13:10:11
Go to the top of the page
+Quote Post
destroyerr
post
Post #8





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

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


Przecież mike napisał Ci, że są to dwie odrębne sprawy. Nie można atrybutów przypisywać do 'credentiala', atrybuty przypisywane są do usera (sesji). Jeśli link, który dał Ci mike nie wyjaśnił Ci sprawy to proponuję wycieczkę do kodu. Tam zobaczysz, że jedno z drugim nie wiele wspólnego.

Napisz co chcesz osiągnąć a będziemy wtedy mogli doradzić.
Go to the top of the page
+Quote Post
mike
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Atrybuty nie są przypisywane do uprawnień! Patrz moje porównanie z pierwszego posta.
Dodając uprawnienie nie dodajesz nic do atrybutów, nie ma potrzeby. Stąd odbierając uprawnienie nie są kasowane atrybuty.

Przeczytaj dokumentacje bo bez tego nie mamy o czym rozmawiać.
Go to the top of the page
+Quote Post
stachuf11
post
Post #10





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

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


Witam
Dziekuję bardzo za wyprostowanie mojego błednego myślenia, zmyliły mnie przykłady z
http://www.symfony-project.org/askeet/1_0/6,

a rzeczywiście nie trzeba przypisywać credential, aby zachować atrybuty
a cos takiego
  1. <?php
  2. $sesia=$this->getUser();
  3. $sesia->setAttribute('daty',$staredaty,'rezerwacja');
  4. ?>


trzeci parametr 'rezerwacja' określa grupę atrybutów, czy dobrze rozumię
natomiast
  1. <?php
  2. $this->getUser()->getAttributeHolder()->remove('daty','rezerwacja');
  3. ?>


usuwa atrybut z danej grupy atrybutów 'rezerwacja', czy tak?

pozdrawiam
Stachu
Go to the top of the page
+Quote Post
mike
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(stachuf11 @ 22.01.2008, 07:44:25 ) *
usuwa atrybut z danej grupy atrybutów 'rezerwacja', czy tak?
Lepszą nazwą jest przestrzeń nazw.
Tak, z przestrzeni nazw (grupy) rezerwacja usunięty zostanie atrybut daty.
Go to the top of the page
+Quote Post
stachuf11
post
Post #12





Grupa: Zarejestrowani
Postów: 154
Pomógł: 1
Dołączył: 24.04.2006

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


dziękuje wszystkim za udział w dyskusji i pomoc
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 27.09.2025 - 09:43