用户及文件权限的设定


关于用户的使用参见:扩展用户插件

本篇讲一讲对于文章或者具体页面内容的权限控制。

1. 模板级别控制

后台每篇页面右上角都有设置可访问的角色,这种设定可以使得文章的详情页对非指定会员级别不可见,但是列表页可见。

<cms:template title='News' clonable='1' access_level='2'>
    <!-- Editable regions and Folders are usually defined here -->
</cms:template>

2. 页面级控制,后台直接设置

3. 列表页可见性控制

我们在列表里建一个循环判断: 即如果当前的用户级别大于设定的用于级别,这样对应级别的内容就会展现出来。

<cms:pages>
   <cms:if (k_user_access_level ge k_access_level)>
   循环内容
   </cms:if>
</cms:pages>

这种精细粒度也可用于网页内部任何详细内容的精细访问(元素级访问)

<cms:if k_user_access_level ge '4' >   xxxx  </cms:if>

4. 内容链接的可访问性

第三种情况是:比如下载链接,我们需要客户都能看到,对于某一些文件按钮,点击下载做权限控制,没登录的点击后提示登录。

这种情况需要对下载的链接做精细化控制,即隐匿链接。

每当页面执行时,Couch 会设置以下变量,以提供访问该页面的访客信息——

  • k_logged_in
  • k_logged_out
  • k_user_id
  • k_user_name
  • k_user_title
  • k_user_email
  • k_user_access_level
  • k_user_disabled
  • k_login_link
  • k_logout_link

k_logged_ink_logged_out变量可以用来判断访客是否正在登录,因此是否拥有网站账户。如果他已登录,可以使用k_user_idk_user_namek_user_titlek_user_emailk_user_access_level获取他的详细信息。

k_user_access_level是一个重要变量,通过以下数值表示用户的“群体”——

  • 超级管理员:10
  • 管理员:7
  • 认证用户(特殊):4
  • 认证用户:2
  • 所有人:0

如图所示,数字越大,账户被认为越强大。