当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

ACL - 驅动类型 - Auth 套件

优质
小牛编辑
122浏览
2023-12-01

Auth 套件在 Fuel 里提供一个标准化的认证介面。 这使得我们的使用者能编写自己的驱动程序,并且轻鬆地将新的驱动程序与旧的程式码整合, 以保持基本方法一致。

Auth_Acl_Driver

此驱动是所有 Auth acl 驱动的基础类别。它被定义为一个抽象类别, 该类别包含了通用于所有 acl 驱动的所有方法, 以及定义给任何 acl 驱动必须实现的所有抽象方法。

静态介面

为了易于使用,has_access() 方法透过通用 Auth 静态介面曝光。

使用静态介面,你能做到

// 回传 true 如果目前使用者有所需的权限
$may_access_comments = Auth::has_access('comments[read,write]');

通用方法

通用方法被定义在 acl 基础驱动,而且能透过扩充到达所有的 Auth acl 驱动。这些方法提供功能来与特定的 acl 互动,并检查存取。

定义在类别中而没记录在此的方法是内部使用,而且不应该直接被呼叫。

get_id()

回传驱动的唯一 ID。这可被用于识别驱动,或用来选择一个特定的驱动实例。

静态
参数
回传驱动 ID 字串。
範例
// 回传 'simpleacl'
$id = Auth::acl()->get_id();

set_config($key, $value)

设定一个驱动配置值。

静态
参数
参数预设描述
$key必要配置键名
$value必要此配置键的值
回传
範例
// 在 simpleacl 驱动设定一个配置值
Auth::acl()->set_config('key', 'value');

get_config($key, $default = null)

取得一个驱动配置值。

静态
参数
参数预设描述
$key必要配置键名
$defaultnull如果请求的键不存在时要回传的预设值
回传混合
範例
// 取得一个 simpleacl 驱动的配置值,如果不存在回传
$key = Auth::instance(simpleacl)->get_config('key', false);

抽象方法

你所开发的每个 acl 驱动必须提供这些所有的方法,且必须回传此处记录的值。

has_access($condition, Array $entity)

has_access 方法使用定义的 ACL 驱动根据所给的条件来检查使用者的存取。

静态
参数
参数预设描述
$condition必要在该位置做为字串或阵列,代入一个位置和所需权限。 代入一个位置和所需权限。
$entity必要array(driver_id, id) 形式的使用者或群组识别。
回传布林,true 如果存取被允许,否则为 false
範例
// 检查使用者是否允许评论
if ( ! Auth::acl()->has_access('comments.create'), array('simplegroup', 1))
{
	Response::redirect('no_admin');
}