关于用户的使用参见:扩展用户插件
本篇讲一讲对于文章或者具体页面内容的权限控制。
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_in或k_logged_out变量可以用来判断访客是否正在登录,因此是否拥有网站账户。如果他已登录,可以使用k_user_id、k_user_name、k_user_title、k_user_email和k_user_access_level获取他的详细信息。
k_user_access_level是一个重要变量,通过以下数值表示用户的“群体”——
- 超级管理员:10
- 管理员:7
- 认证用户(特殊):4
- 认证用户:2
- 所有人:0
如图所示,数字越大,账户被认为越强大。