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

时间:2011-07-24 00:10:20

标签: php model-view-controller symfony1 content-management-system symfony-1.4

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

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

但我想知道仅为管理员使用后端应用程序会更好吗?这就是jobeet教程的方式。所以管理员会转到这个后端应用程序而不是其他人使用的另一个应用程序....

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

感谢。

2 个答案:

答案 0 :(得分:1)

如果您没有使用后端管理生成器,我会将所有内容保留在前端应用程序中,因为在这种情况下我没有看到有一个单独的后端应用程序的主要好处。您可以将前端应用程序内的普通用户和管理员的用户体验分开,从他们自己的登录页面到“管理模式”模板视图等.sfDoctrineGuard附带组和权限,因此很容易设置。此外,您不需要在后端应用程序中复制前端应用程序设置,只是为了使工作方式相同。

答案 1 :(得分:0)

这个决定是一个平衡的行为。最佳答案取决于两种类型用户之间的功能和权限如何不同。如果您的网站非常复杂,则可以更轻松地在单独的应用程序中编写,维护和测试代码。如果只有一些小差异,您会更喜欢只维护一个应用程序的简单性。

例如,在我们的系统中,我们拥有自己的系统管理员,这些管理员可以比客户“管理员”做得更多。客户用户具有不同的权限级别,其管理级别最高。然而,即使是那些客户也无法访问我们的任何后端,后端有许多他们看不到的模块,以及完全不同的表单集。我们甚至在不同的虚拟主机名上运行这些应用程序,即使它位于同一个Symfony项目中。

拥有这样的独立应用程序可让您通过让客户完全脱离后端及其所有模块来更轻松地确保安全性。我们有一些在后端和前端类似的模块,但客户方必须对哪些记录和附件有更多的自定义限制。他们可以查看/编辑的字段,以防止其他客户的数据。

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