Auth パッケージ

Auth パッケージは Fuel における標準化された認証インターフェイスを提供します。 これにより、ユーザは自分自身で新しいドライバを書くことができ、 基本的なメソッドを保つことで、古いコードに新しいドライバを簡単に統合することもできます。

Auth_Group_Driver

このドライバは、すべての Auth Group ドライバの基底クラスです。抽象クラスとして定義されており、 すべての Group ドライバに汎用なメソッド、 Group ドライバが必ず実装しなければならないメソッドの 抽象メソッドの定義が含まれています。

ドライバの設定

Group ドライバは必要に応じて追加のドライバをロードできます。一般的には、 ACL ドライバがこれにあたります。 しかし、実装次第では、カスタムタイプのドライバを導入して利用することも可能です。そのためには、ドライバクラスに次の構造を追加してください:

// この Group ドライバが読み込まれたとき Simpleacl ACL ドライバはオートロードされる
	protected $config = array(
		'drivers' => array('acl' => array('Simpleacl'))
	);

静的インターフェイス

使いやすいように、汎用的な Auth 静的インターフェイスを通じて member() メソッドは公開されています。

静的インターフェースで使用するには

// もし 現在のユーザーがグループ 16 のメンバの場合 true を返す
$is_member = Auth::member(16);

汎用メソッド

汎用メソッドは、 Group 基底ドライバに定義されており、継承によりすべての Auth Group ドライバから使うことができます。 これらのメソッドが提供する関数には、グループ間のやり取りを行ったり、アクセス権を確認するものがあります。

クラスに定義されているメソッドのうち、ドキュメントに記載されていないものは内部で利用されてるものなので、直接呼び出さないようにしてください。

get_id()

ドライバのユニーク id を返します。ドライバを区別したり、特定のドライバのインスタンスを選択するために使います。

静的 いいえ
パラメータ なし
返り値 ドライバ id の文字列
// 'simpleauth' を返す
$id = Auth::group()->get_id();

set_config($key, $value)

ドライバの config の値を設定します。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$key 必須 config のキー名
$value 必須 config のキーの値
返り値 void
// simplegroup ドライバの config に値を設定する
Auth::group()->set_config('key', 'value');

get_config($key, $default = null)

ドライバの config の値を取得します。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$key 必須 config のキー名
$default null 要求したキーに値がなかったときに返されるデフォルト値
返り値 mixed
// get a config value of the simplegroup driver, return false if it doesn't exist
$key = Auth::instance('simplegroup')->get_config('key', false);

抽象メソッド

どの自作 Group ドライバも、以下のメソッドを用意しなければなりません。また、ここで記載されたとおりに値を返さなければなりません。

member($group, $specific = null)

ユーザが与えられたグループのメンバかどうか、ロード済みのすべての Group ドライバ、 もしくは第 2 引数で指定した特定の Group ドライバについて確認します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$group 必須 グループ id
$specific null null で全ドライバ、もしくは、ひとつ以上のドライバ id (文字列、または、文字列の配列)で特定のドライバをチェック。
返り値 論理型、(渡されたドライバのうち)ひとつでもユーザがメンバになっているかどうか。
if ( ! Auth::member(100) )
{
	Response::redirect('no_admin');
}

// 特定のドライバ
Auth::member(1, 'simplegroup');

// 複数のドライバ
Auth::member(0, array('simplegroup', 'genericgroup'));

get_name($group)

グループの表示名を取得します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$group null グループの表示名を取得したいドライバの名前。
返り値 mixed 。取得されたグループの表示名を、グループが存在しない場合は false を、返す。
// admin グループの表示名を取得
Auth::group()->get_name('admin');