EZ Publish/EZ Publish 策略功能

来自站长百科
跳转至: 导航、​ 搜索

EZ Publish | EZ Publish安装与卸载 | EZ Publish的使用 | EZ Publish常见问题 | EZ Publish其他

策略功能简述[ ]

eZ Publish 内建的访问控制机制基于角色和策略。策略是一组授权访问模块的特定或全部函数的规则。

函数被指派到模块的视图,因而对视图的访问是由指派给它的函数控制的。

以下代码演示了在"kernel/notification/module.php"中如何指派"notification"模块的函数-视图。

<?php
$Module = array( "name" => "eZNotification",
"variable_params" => true );
$ViewList = array();
$ViewList["settings"] = array(
"functions" => array( 'use' ),
"script" => "settings.php",
'ui_context' => 'administration',
"default_navigation_part" => 'ezmynavigationpart',
"params" => array( ),
'unordered_params' => array( 'offset' => 'Offset' ) );
$ViewList["runfilter"] = array(
"functions" => array( 'administrate' ),
"script" => "runfilter.php",
'ui_context' => 'administration',
"default_navigation_part" => 'ezsetupnavigationpart',
"params" => array( ) );
$ViewList["addtonotification"] = array(
"functions" => array( 'use' ),
"script" => "addtonotification.php",
'ui_context' => 'administration',
"default_navigation_part" => 'ezcontentnavigationpart',
"params" => array( 'ContentNodeID' ) );
$FunctionList['use'] = array( );
$FunctionList['administrate'] = array( );
?>


如上面代码所示,有两个函数被指派给三个函数。"administrate"函数被指派给"runfilter"视图,"use"函数被指派给"addtonotification"和"settings"视图。

多函数指派[ ]

一个视图可以有多个函数指派。从3.9.3 版本开始,系统在函数-视图指派中使用逻辑操作符("and","or")。下例演示了这个特性如何工作。

例1

"content"模块的"tipafriend"视图有两个函数指派。以下代码摘自"kernel/content/module.php"。

$ViewList['tipafriend'] = array(
'functions' => array( 'tipafriend', 'read' ),
'default_navigation_part' => 'ezcontentnavigationpart',
'script' => 'tipafriend.php',
'params' => array( 'NodeID' ) );

本例中的代码限定用户必须被同时授权访问"tipafriend"和"read"函数才能使用"tipafriend"视图("content"模块的一部分)。注意,有如下一种方法来指派同样的函数。

...
'functions' => array( 'tipafriend and read' ),
...

注意,"and"操作符也可以用"&&"代替。

例2

"section"模块的"list"视图有三个函数指派。下面的代码摘自"kernel/section/module.php"。

$ViewList['list'] = array(
'functions' => array( 'view or edit or assign' ),
'script' => 'list.php',
'default_navigation_part' => 'ezsetupnavigationpart',
"unordered_params" => array( "offset" => "Offset" ),
'params' => array( ) );

上例的代码限定用户只要被授权访问"view","edit"或"assign"函数中的一个就可以使用"list"视图("section"模块的一部分)。注意,"or"操作符也可以用"||"来代替。

缺失函数[ ]

某些模块没有函数(如,"search"和"collaboration"模块)。这种情况下,授权访问这个模块意味着用户被授权访问这个模块的所有视图。

如果一个模块既有有函数指派的视图也有没有函数指派的视图,只有当用户被授权访问整个模块才可以访问那些没有函数指派的视图。

对早期版本的补充说明[ ]

在3.9.3 版本(除3.8.9 及以后的3.8.x 版本)以前版本中,授权用户访问模块的函数将会授权用户访问:

• 被指派该函数的视图

• 没有函数指派的视图

例如,在eZ Publish 3.9.2,"shop"模块的"discountgroupview"视图没有函数指派。可以访问"shop"模块的"buy"函数的匿名用户也可以访问"discountgroupview"视图(以及其它没有函数指派的视图)。基于安全考虑,这一特性在"3.10.0 beta1“,"3.9.3"和"3.8.9"版本中被修改。自定义的模块如果有函数不应该包含没有函数指派的视图。

函数限制[ ]

策略(授权访问模块的函数)可以通过函数限制被进一步限定。如果函数支持限定条件就可以做这种限定。函数可以支持0,1 或多个限定条件。下面的代码演示了如何 在"kernel/content/module.php"对"diff","hide"和"tipafriend"函数指定限定条件。

...
$FunctionList['diff'] = array( 'Class' => $ClassID,
'Section' => $SectionID,
'Owner' => $Assigned,
'Node' => $Node,
'Subtree' => $Subtree);
...
$FunctionList['hide'] = array( 'Subtree' => $Subtree );
...
$FunctionList['tipafriend'] = array();
...

如上面的代码所示,"diff"函数支持五个限定条件,"hide"函数支持一个,"tipafriend"函数不支持限定条件。参考“EZ Publish访问控制”了解更多。

参考来源[ ]

EZ Publish使用手册导航

EZ Publish安装卸载

EZ Publish正常安装 | EZ Publish手动安装 | EZ Publish自动安装 | EZ Publish安装向导 | EZ Publish虚拟主机设置 | EZ Publish使用扩展 | EZ Publish的卸载

EZ Publish的使用

模板使用:

EZ Publish节点模板 | EZ Publish系统模板 | EZ Publish Pagelayout页头信息 | EZ Publish Pagelayout变量 | EZ Publish 模板注释 | EZ Publish 模板变量类型 | EZ Publish 模板变量用法 | EZ Publish 调查数组和对象 | EZ Publish 模板控制结构 | EZ Publish 函数与操作符 | EZ Publish URL处理 | EZ Publish 内容提取 | EZ Publish 模板重设系统
系统功能: EZ Publish 系统记帐 | EZ Publish 策略功能 | EZ Publish 多语言使用(一) | EZ Publish 多语言使用(二) | EZ Publish 集群的使用 | EZ Publish 安装包的使用 | EZ Publish Cronjob脚本的使用 | EZ Publish 多货币功能 | EZ Publish 通知功能
其他功能: EZ Publish 增值税(VAT)系统 | EZ Publish 改进的商品配送系统 | EZ Publish 多语言URL别名 | EZ Publish 登录后高级重定向 | EZ Publish 检索引擎 | EZ Publish WebDAV | EZ Publish 视图缓存

EZ Publish常见问题

EZ Publish 安装常见问题 | EZ Publish 使用常见问题

EZ Publish其他

EZ Publish内部结构 | EZ Publish内容与界面 | EZ Publish内容管理(一) | EZ Publish内容管理(二) | EZ Publish配置模型 | EZ Publish模块与视图 | EZ Publish URL 翻译 | EZ Publish 界面 | EZ Publish访问控制 | EZ Publish网络商店 | EZ Publish工作流