Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF][Symfony][Symfony3][S3] FOSUserBundle, + dodatkowe role przy rejestracji
umatik
post 7.12.2017, 10:03:55
Post #1





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 17.05.2002
Skąd: lodz

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


W zasadzie mój problem opisuje temat. Jak mam dodać skutecznie dodatkowe pola w formularzu rejestracji
FOSUserBundle opisujące dodatkowe role np:

inputy standarowe:
- username
- email
- pass
- pass2

dodatkowe checkbox'y lub radio:
- role-wizard
- role-knight
- role-alien
Go to the top of the page
+Quote Post
Pyton_000
post 7.12.2017, 10:24:40
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


https://stackoverflow.com/questions/3215683...rkfosuserbundle
Go to the top of the page
+Quote Post
umatik
post 7.12.2017, 12:18:39
Post #3





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 17.05.2002
Skąd: lodz

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


hmmm problem do którego opisu prowadzi link jest związany z: fosuserbundle 1.3 -- symfony 2.6.11,
a ja szukam pomocy z wersją FOSUser 2.0 -- S3.3

Chodzi mi o dodatkowe Role, jakie użytkownik może mieć po zalogowaniu.
Go to the top of the page
+Quote Post
Pilsener
post 8.12.2017, 09:29:27
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


No to co za problem wyrzucić FOSUser i zrobić po swojemu? Nie ma sensu dociągać do aplikacji szczególnej implementencji userów tylko po to, żeby zaraz ją nadpisywać i modyfikować. I z tego co widzę jest to powszechny problem - zanim się czegoś użyje, trzeba zadać sobie pytanie, czy to jest dokładnie to czego teraz potrzebujemy oraz czy może zaistnieć potrzeba modyfikacji tego w przyszłości.
Zrobienie własnych userów wraz z rolami, logowaniem, rejestracją itp. to jest około jednego dnia pracy a do tego oszczędzasz sobie w przyszłości mase straconego czasu na grzebanie w vendorze i pisanie workaroundów.

Ten post edytował Pilsener 8.12.2017, 09:30:13
Go to the top of the page
+Quote Post
umatik
post 8.12.2017, 10:56:42
Post #5





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 17.05.2002
Skąd: lodz

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


FOSUserBundle w wersji wersji 2.0 obsługuje role, dlatego się chciałem dowiedzieć czy i jak mogę uwzględnić to w formularzu rejestracyjnym.
Go to the top of the page
+Quote Post
Pilsener
post 8.12.2017, 11:30:30
Post #6





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Role obsługuje Symfony i są one integralną częścią frameworka: http://api.symfony.com/3.4/Symfony/Compone...rInterface.html
Mając własną implementację wystarczyłoby dodać wybór roli do formularza rejestracji. Tutaj jednak najpierw trzeba rozkiminić FOSUser:
https://symfony.com/doc/master/bundles/FOSU...rage_layer.html
Najbardziej podoba mi się to:
Cytat
Configuring FOSUserBundle to use your implementation

- czyli i tak robię własną implementację a ponieważ "używam" FOSUser to go jakoś rozkopię na boki nadpisując:
- encje
- formularze i walidację
- konfigurację
- user provider, success login handler etc.
- pewnie jeszcze jeszcze jakieś eventy i stado templatów
Ma to sens? W ten sposób robi się tylko bajzel w projekcie, za kilka miesięcy nikt nie będzie mógł obczaić relacji pomiędzy Symfony, FOSUser a Twoją implementacją.
Jeśli koniecznie chcemy się wzrorować na FOSUeer to już lepiej go sforkować i zmienić po swojemu.
Go to the top of the page
+Quote Post
Pyton_000
post 8.12.2017, 11:32:28
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


To ja dodam do tego co @Pilsener napisał https://jolicode.com/blog/do-not-use-fosuserbundle

Ten post edytował Pyton_000 8.12.2017, 11:38:25
Go to the top of the page
+Quote Post
umatik
post 8.12.2017, 12:02:43
Post #8





Grupa: Zarejestrowani
Postów: 209
Pomógł: 0
Dołączył: 17.05.2002
Skąd: lodz

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


@Pilsener
Tak myślałem, że trzeba 'zcustomizować' FOSUser'a. Dzięki za wskazówki smile.gif

@Pyton_000

Dzięki za linka poczytam smile.gif
Go to the top of the page
+Quote Post
kusiu
post 12.02.2018, 13:22:20
Post #9





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Cytat(umatik @ 7.12.2017, 10:03:55 ) *
W zasadzie mój problem opisuje temat. Jak mam dodać skutecznie dodatkowe pola w formularzu rejestracji
FOSUserBundle opisujące dodatkowe role np:

inputy standarowe:
- username
- email
- pass
- pass2

dodatkowe checkbox'y lub radio:
- role-wizard
- role-knight
- role-alien


User.php
  1. ...
  2. const ROLE_WIZARD = 'ROLE_WIZARD';
  3. const ROLE_KNIGHT = 'ROLE_KNIGHT';
  4. const ROLE_ALIEN = 'ROLE_ALIEN';
  5.  
  6. const ROLE_TO_DISPLAY = [
  7. self::ROLE_WIZARD => 'Wizard',
  8. self::ROLE_KNIGHT => 'Knight',
  9. self::ROLE_ALIEN => 'Alien',
  10. ];
  11.  
  12. public function getRole(): string
  13. {
  14. $roles = $this->getRoles();
  15. return current($roles);
  16. }
  17.  
  18. public function setRole(?string $role): self
  19. {
  20. return $this->setRoles([$role]);
  21. }


RegistrationFormType.php
  1. ...
  2. $builder->add('role', ChoiceType::class, [
  3. 'choices' => array_flip(User::ROLE_TO_DISPLAY),
  4. 'multiple' => false,
  5. 'expanded' => true,
  6. ]);
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 Wersja Lo-Fi Aktualny czas: 19.04.2024 - 21:00