• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed ROLE_ADMIN,ROLE_USER - Symfony 4

Object Storage Arubacloud
0 głosów
357 wizyt
pytanie zadane 15 kwietnia 2019 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
zamknięte 16 kwietnia 2019 przez hiper007

Witam!

Mam problem z  rolami w Symfony 4:

tak wygląda baza:

Każdy login ma przypisane swoje role.

Wszyscy mają ROLE_USER, a mariuszlog ma ROLE_ADMIN, zaś basialog ma  obie role przypisane

Tak wygląda konfiguracja Encji User.. a dokładnie ról

Wcześniej miałem ustawione na type="json" i wyskakiwał bląd, ale zmieniłem na type="json_array" i zaczęło działać

Ale jak loguje się na mariuszlog to przydziela mu rolę ROLE_USER, a nie ROLE_ADMIN, jaką ma zdefiniowaną w bazie.

Gdzie może występować błąd?? Dopiero zaczynam zabawę z Symfony więc pewnie błąd będzie banalny...

Z  góry dzięki. 

komentarz zamknięcia: Problem rozwiązany
1
komentarz 15 kwietnia 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Być może nie obsługują w tych wersjach, ale to co, Symfony samo zrobiło longtext? Jeśli tak to działa i wrzuca tam faktycznie JSONa i odczytuje poprawnie role?
komentarz 16 kwietnia 2019 przez hiper007 Stary wyjadacz (11,270 p.)
Podobno Symfony jest bystre :)

W Doctrine jest ustawiona wersja 5.7 mysql i jak zostawimy ja to po migracji wygeneruje się sql z kolumna json. Jeżeli zmienimy na 5.6 w ustawieniach to wygeneruje się sql z longtext :) ogólnie migracja mi nie chciala przejść. Poniżej błąd :) musiałem go wkleić do phpmyadmin
komentarz 16 kwietnia 2019 przez hiper007 Stary wyjadacz (11,270 p.)

 

Blad:

1
komentarz 16 kwietnia 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
Jak widzę już rozwiązałeś problem. Dokumentacja sugeruje typ json, stąd jakoś nawet nie myślałem o innym.
komentarz 16 kwietnia 2019 przez hiper007 Stary wyjadacz (11,270 p.)
Dzięki wielkie :) pozdrawiam.

2 odpowiedzi

+2 głosów
odpowiedź 16 kwietnia 2019 przez Ehlert Ekspert (212,670 p.)
wybrane 16 kwietnia 2019 przez hiper007
 
Najlepsza
Jeśli chcesz, żeby to działało, to użyj typu array. Przecież w polu masz wartość z funkcji php serialize, nic dziwnego że doktryna tego nie rozumie.
komentarz 16 kwietnia 2019 przez hiper007 Stary wyjadacz (11,270 p.)
Jesteś Wielki ;) działa ;) dzięki

Jesteś w stanie mi powiedzieć jeszcze co lepiej stosować do sprawdzenia zalogowania użytkownika. ROLE_USER czy IS_AUTHENTICATED_FULLY??
1
komentarz 16 kwietnia 2019 przez Ehlert Ekspert (212,670 p.)

Z ROLE_USER korzystasz przy założeniu, że każdy user ma nadaną taką rolę od początku. IS_AUTHENTICATED_FULLY możesz wykorzystać jeśli takiej roli nie nadajesz użytkownikowi i wtedy masz pewność, że jest zalogowany.

W momencie kiedy zapytałeś, to nie miałem w 100% pewności czy to tak działa. Ale w dokumentacji jest wszystko dlatego polecam brać garściami i wiadrami:

https://symfony.com/doc/current/security.html#checking-to-see-if-a-user-is-logged-in-is-authenticated-fully

1
komentarz 16 kwietnia 2019 przez hiper007 Stary wyjadacz (11,270 p.)
Super dzięki za pomoc :) Niech się przyda imnym ta wiedza też. Zamykam temat. Pozdrawiam
0 głosów
odpowiedź 15 kwietnia 2019 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)
Proste zawszę będziesz miał rolę USER_ROLE dla każdego zalogowanego użytkownika, ponieważ w metodzie getRoles przypisujesz do tablicy wartośc USER_ROLE czyli nadpisujesz wcześniejszą wartość, która została wyciągnięta z bazy danych i przypisana do zmiennej roles.
1
komentarz 15 kwietnia 2019 przez Arkadiusz Waluk Ekspert (287,950 p.)
To jednak nie takie proste, bo dopisuje do tablicy z rolami, nic nie nadpisuje. Jest to nawet wyjaśnione w komentarzu nad tą linią.
1
komentarz 15 kwietnia 2019 przez Paweł Antyporowicz Stary wyjadacz (11,470 p.)
A to przepraszam za wprowadzanie w błąd. Myślałem, że to problem z implementacją metody.

Podobne pytania

+1 głos
1 odpowiedź 282 wizyt
pytanie zadane 21 kwietnia 2019 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
–1 głos
1 odpowiedź 172 wizyt
pytanie zadane 10 stycznia 2020 w PHP przez niezalogowany
0 głosów
1 odpowiedź 313 wizyt
pytanie zadane 17 września 2019 w PHP przez michh123 Bywalec (2,790 p.)

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...