为具有不同权限的不同用户显示不同的视图

Posted

技术标签:

【中文标题】为具有不同权限的不同用户显示不同的视图【英文标题】:show different views for different users with different permissions 【发布时间】:2011-08-23 10:37:45 【问题描述】:

我正在开发一个类似网站的社交网络,但在如何为不同类型的用户管理视图方面遇到了一些麻烦。我有几个页面,它的内容和结果视图取决于用户权限。 例如,如果用户是组的成员(具有会员资格)可以在该组页面中看到很多东西,但如果他不是,则模板应该有很多不同。

最简单的方法是用IF结构控制页面的各个部分。但它有点讨厌,我不喜欢它。

你有什么更好的主意,或者如果是这种情况的最佳解决方案。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

这在某种程度上取决于您希望如何创建模板。 :-)

    组合插槽、部分和组件。这可能是最简单和最“可读”的解决方案。它将逻辑划分为易于重用的块。 您可以创建单独的布局,并在模板中调用<?php decorate_with('template_user'); ?>(将if-statements 添加到部分并包含部分) 或创建您自己的基本操作类,在preExecute() 中设置模板 (this->setLayout('template_user')) 创建单独的操作,并根据用户的权限转发用户。

我会选择第一个 :-)

【讨论】:

谢谢。他们中的大多数人也在我的脑海中,但我想我也会选择第一个。

以上是关于为具有不同权限的不同用户显示不同的视图的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 10g - 链接具有不同用户权限的两个视图

jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs

jenkins权限管理,实现不同用户组显示对应视图views中不同的jobs

具有不同用户角色和权限的应用程序的 Dreamfactory 用户管理?

Jenkins 不同角色不同视图及不同权限设置

在 Django 中为特定视图设置用户权限