如何在代码中找到MURA中的页面权限?

时间:2013-07-26 07:55:10

标签: permissions mura

对于我正在构建的网站,我需要检查页面权限。

权限在MURA管理员中设置,该组中有一个人,该组具有编辑权限。

这个组设置的页面在此页面上我需要进行切换:

当来自上述组的该用户登录并在该页面上时,我需要显示一个操作栏。当另一个用户登录时,谁不在该组中,则不应显示操作栏。

我正在寻找类似的东西:#$。content('pagePermissions')#

我一直在搜索会话,请求和应用范围。在那里我找到了application.permUtility,但我无法在cfc中找到一个函数,我可以在那里请求页面权限。

任何人都知道我如何获得这些页面权限?

1 个答案:

答案 0 :(得分:1)

最简单的方法是简单地检查用户的组,例如:

<cfif $.currentUser().isInGroup('Some Group Name')>
  ... render &/or include something ...
</cfif>

您只需将其放置在布局模板中即可完成。

此外,Mura通过 $。event('r')在事件范围内有一个方便的变量,你可以检查它返回以下键:

  • ALLOW(boolean)
  • HASMODULEACCESS(boolean)
  • LOGGEDIN(布尔)
  • PERM(编辑滚动/登录用户的权限)
  • RESTRICT(布尔)
  • RESTRICTGROUPS(用户必须以逗号分隔的组列表才能查看内容)
  • SITEID(当前请求的siteid)

在这种情况下,您可以执行以下操作:

<cfif $.event('r').restrict and ListFindNoCase($.event('r').restrictgroups, 'YourAuthorizedGroupName'>
  ... render &/or include something ...
</cfif>

但要记住的一件重要事情是“超级用户”可能不一定是任何组的成员。因此,如果您想要包含它们,您可以执行以下操作:

<cfif $.currentUser().isSuperUser() ... >

所以你可能想要将它添加到你的陈述中,例如:

<cfif $.currentUser().isSuperUser() or $.currentUser().isInGroup('Some Group Name')>
  ... render &/or include something ...
</cfif>