Auth 套件

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 必要 配置鍵名
$default null 如果請求的鍵不存在時要回傳的預設值
回傳 混合
範例
// 取得一个 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');
}