![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Mam pytanie odnośnie formularzy w Symfony 2. Mam metodę formularza:
I teraz w zależności od tego na jakim poziomie uprawnień użytkownik zaloguje się, może edytować formularz. Np: jeśli użytkownik ma uprawnienia "administratora" to może edytować pole "role" a jeśli ma mniejsze to nie może. Oczywiście wszystko jest realizowane na poziomie widoku. Sprawdzam tam czy użytkownik ma odpowiednie uprawniania i w zależności od ich, wyświetlam pole "role" albo nie. Głównie chodzi mi o to, że jak nie została podana wartość w Request`cie to żeby nie ustawiał wartości tylko ją pomijał, ale gdy pole jest wymagane(required) ma wyświetlić błąd. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Oczywiście wszystko jest realizowane na poziomie widoku. Sprawdzam tam czy użytkownik ma odpowiednie uprawniania i w zależności od ich, wyświetlam pole "role" albo nie No to źle to realizujesz. Chocby dlatego, ze user moze ci wyslac te pola niezaleznie czy ty je w widoku generujesz czy nie i ups, szlag trafil twoje "zabezpieczenia".Pola masz (nie)generować o tu $builder->add('id', 'hidden') ->add('email', 'email') ->add('role', 'entity', array( 'class' => 'SystemBundle:Role', 'required' => false, 'property' => 'name', 'query_builder' => function(EntityRepository $em) { return $em->createQueryBuilder('r') ->orderBy('r.level', 'ASC'); }, )); Jak nie ma prawa do danego pola to go poprostu tu nie generujesz. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 247 Pomógł: 9 Dołączył: 20.09.2010 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Racja, przegapiłem tę sytuację.... A generować pola mam już w kontrolerze czy tworzyć klasę która dziedziczy po "AbstractType" ?
A jaki sposób według was jest najlepszy do tworzenia formularzy ? Mamy np AccountEntity i ma pola: email, password, isActive, role, isDeleted, activationKey, address(relacja). Tworzymy klasę AccountType, która dziedziczy po AbstractType, za pomocą metody buildForm dodajemy pola takie jak w AccountEntity. Do pola "address" musimy stworzyć nową klasę AddressType która też dziedziczy po AbstractType. W kontrolerze tworzymy formularz za pomocą metody createFrom($AccountType, $AccountEntity). Tutaj wszystko wydaje mi się logiczne, ale gdy chcemy dodać pole do formularza w kontrolerze np: checkbox o nazwie sendEmailToUser to już jest błąd. Wydaje mi się, że formularze w Zend 1 były bardziej logiczne. Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:43 |