会有一个单独的应用程序是适合symfony网站的管理员


Would having a separate app be appropriate for administrators of a symfony site?

我正在建立一个基于symfony的网站,其中有用户和管理员。通常,我会让他们使用相同的应用程序,并通过检查他们的权限(我使用sfGuard插件)为管理员显示不同的页面。

Admins与其他用户使用相同的模块,但视图不同。管理员可以搜索所有用户数据,并可以一次查看所有用户。他们也可以编辑任何东西。

但我想知道是否使用后端应用程序只对管理员更好?这就是职业甜菜教程的做法。管理员会使用这个后端应用而不是其他人使用的那个....

每种方法的优缺点是什么?

谢谢。

如果您不使用后端管理生成器,我会将所有内容保留在前端应用程序中,因为在这种情况下,我看不到拥有单独的后端应用程序的主要好处。你可以在前端应用程序中分离普通用户和管理员的用户体验,从他们自己的登录页面到"管理模式"模板视图等。此外,你不需要在后端应用程序中复制前端应用程序的设置,只是为了让事情以同样的方式工作。

这个决定是一个平衡的行为。最好的答案取决于这两种用户的功能和权限有多大的不同。如果你的网站非常复杂,那么在单独的应用程序中编写、维护和测试代码将变得更加容易。如果只有一些小小的差异,你会更喜欢只维护一个应用程序的简单性。

例如,在我们的系统中,我们有自己的系统管理员,他们被允许做的和看到的远远超过客户的"管理员"。客户用户具有不同的权限级别,其中admin级别是最高的。然而,即使是这些客户也不能访问我们的任何后端,其中有许多他们看不到的模块,以及完全不同的表单集。我们甚至在不同的虚拟主机名上运行这些应用程序,即使它们在同一个Symfony项目中。

拥有这样独立的应用程序可以让你更容易地确保安全是正确的,让客户完全脱离后端及其所有模块。我们有一些在后端和前端类似的模块,但客户端必须有更多的自定义限制,哪些记录& &;他们可以查看/编辑的字段,以使其远离其他客户的数据。

如果我们试图将所有这些客户限制与我们的超级特权功能混合在一起,我们将会遇到复杂的条件和查询的噩梦,并且很容易犯错误并允许客户访问他们不应该拥有的权限。