Buduję witrynę opartą na symfony, która ma użytkowników i administratorów. Normalnie pozwoliłbym im korzystać z tej samej aplikacji i wyświetlać różne strony dla administratorów, sprawdzając ich uprawnienia (używam wtyczki sfGuard).

Administratorzy używają tych samych modułów, co inni użytkownicy, ale widoki są różne. Administratorzy mogą wyszukiwać wszystkie dane użytkowników i jednocześnie widzieć wszystkich użytkowników. Mogą też edytować wszystko.

Ale zastanawiam się, czy nie byłoby lepiej korzystać z aplikacji backendowej tylko dla administratorów? W ten sposób robi to samouczek Jobeeta. Tak więc administratorzy przeszliby do tej aplikacji zaplecza zamiast do innej, z której korzystają wszyscy inni....

Jakie byłyby plusy i minusy każdego podejścia?

Dzięki.

0
sqlman 24 lipiec 2011, 04:10
Szczerze powiedziawszy? Myślę, że to nie ma większego znaczenia.
 – 
cwallenpoole
24 lipiec 2011, 05:08

2 odpowiedzi

Najlepsza odpowiedź

Jeśli nie używasz generatora administratora zaplecza, zachowałbym wszystko w aplikacji frontendowej, ponieważ nie widzę większych korzyści z posiadania oddzielnej aplikacji zaplecza w tym przypadku. Możesz oddzielić środowisko użytkownika dla zwykłych użytkowników i administratorów w aplikacji frontendowej w ten sam sposób, od ich własnych stron logowania do widoków szablonów „tryb administratora” itp. sfDoctrineGuard zawiera grupy i uprawnienia, dzięki czemu jest łatwy do skonfigurowania. Ponadto nie musisz duplikować ustawień aplikacji frontendowej w aplikacji backendowej, aby wszystko działało w ten sam sposób.

1
Tom 24 lipiec 2011, 15:25
Czym różni się podejście generatora administratora od tego, co tu mówisz?
 – 
Dziamid
25 lipiec 2011, 20:00
@Dziamid: w zasadzie jeden to administrator wygenerowany przez symfony w aplikacji backendowej, a drugi to warstwa dostosowywania zbudowana na wierzchu aplikacji frontendowej, z mniej więcej tym samym wyglądem i działaniem, ale z dodanymi linkami „edytuj” i cokolwiek innego.
 – 
Tom
25 lipiec 2011, 20:28

Ta decyzja jest aktem równowagi. Najlepsza odpowiedź zależy od tego, JAK RÓŻNE są funkcje i uprawnienia tych dwóch typów użytkowników. Jeśli Twoja witryna jest bardzo złożona, łatwiej będzie pisać, utrzymywać i testować kod w osobnych aplikacjach. Jeśli jest tylko kilka drobnych różnic, wolisz utrzymywać prostotę tylko jednej aplikacji.

Na przykład w naszym systemie mamy własnych administratorów systemu, którzy mogą robić i widzieć znacznie więcej niż administratorzy klienta. Użytkownicy klienta mają różne poziomy uprawnień, a ich poziom administratora jest najwyższy. Jednak nawet ci klienci nie mają dostępu do żadnego z naszych backendów, które mają wiele modułów, których nie widzą, i zupełnie inne zestawy formularzy. Uruchamiamy te aplikacje nawet na różnych wirtualnych nazwach hostów, mimo że znajdują się one w tym samym projekcie Symfony.

Posiadanie osobnych aplikacji, takich jak ta, pozwala łatwiej upewnić się, że zabezpieczenia są odpowiednie, utrzymując klientów całkowicie z dala od zaplecza i wszystkich jego modułów. Mamy kilka modułów, które są podobne pod względem backendu i frontendu, ale strona klienta musi mieć znacznie więcej niestandardowych ograniczeń dotyczących tego, które rekordy i pola mogą przeglądać/edytować, aby trzymać je z dala od danych innych klientów.

Gdybyśmy spróbowali połączyć wszystkie te ograniczenia klientów z naszymi superuprzywilejowanymi możliwościami, mielibyśmy koszmar złożony ze złożonych warunków i zapytań, a popełnienie błędów i umożliwienie klientom dostępu, którego nie powinni mieć, byłoby zbyt łatwe.

0
ybull 25 lipiec 2011, 19:27