Sentry2(Laravel4)のメソッド一覧

今日は、Sentry2のメソッドを一覧にして調べてみたいと思います。その前に、Sentry2のデフォルトのConfigファイルの中身も調べてみたいと思います。

Sentry2のConfigファイル

1. Sentry2デフォルトのConfigファイルを開いてみましょう。コメントは削除しています。

laravel4/vendor/cartalyst/sentry/src/config/sentry.php

<?php
return array(
'driver' => 'eloquent',
'hasher' => 'native',
'groups' => array(
'model' => 'Cartalyst\Sentry\Groups\Eloquent\Group',
),
'users' => array(
'model' => 'Cartalyst\Sentry\Users\Eloquent\User',
'login_attribute' => 'email',
),
'throttling' => array(
'enabled' => true,
'model' => 'Cartalyst\Sentry\Throttling\Eloquent\Throttle',
'attempt_limit' => 5,
'suspension_time' => 15,
),
);
  • 3行目:ドライバーはEloquentを使用しています。
  • 4行目:hasherはnatriveですが、bcryptやsha256を指定出来るみたいです。
  • 6行目:groupsで使用しているモデルです。
  • 9行目:usersで使用しているモデルです。
  • 10行目:ログインで使用するフィールド名です。デフォルトでは、emailとpasswordで認証します。
  • 13行目:スロットルはデフォルトで使用可能に設定されています。
  • 14行目:スロットルのモデルです。
  • 15行目:認証の入力回数でしょうか?
  • 16行目:中断時間でしょうか。?

メソッド一覧

2. それでは、Sentryのメソッドを一覧表示します。尚、私の解釈が間違っていた場合はご指摘いただければ修正いたしますので、よろしくお願いいたします。

認証関連のメソッド

  • authenticate(認証情報,remember=false)
    第1引数は、認証するための情報(emailとpassword)を連想配列で指定します。第2引数は、クッキーに保存するか否かを指定します。省略すれば、falseが指定されます。

    Sentry::authenticate(array
     'email'=>nakada@gmail.com,
     'password'=>'test',
     ));
  • authenticateAndRemember(認証情報)
    上記のメソッドの第2引数がtrueの場合、このメソッドを使用することが出来ます。
  • login(Userオブジェクト,remember=false)
    同じく認証するためのメソッドですが、このメソッドは、第1引数にUserオブジェクトを指定します。第2引数はクッキーに保存するかどうかを指定します。省略すれば、falseが指定されます。

    $user=Sentry::getUserProvider()->findById(1);
     Sentry::login($user,false);
  • loginAndRemember(Userオブジェクト)
    上記メソッドの第2引数がtrueの場合、このメソッドを使用することが出来ます。
  • logout()
    説明の必要も無いと思いますが、ログアウトするためのメソッドです。

    Sentry::logout();

ユーザー関連のメソッド

  • getUserProvider()
    このメソッドで、UserProviderをインスタンス化します。基本的にユーザー関連のメソッドは、このメソッドのチェーンメソッドとして使用します。

    Sentry::getUserProvider()->findById(1)
  • create(ユーザー情報)
    このメソッドはユーザーを作成するために使用します。usersテーブルのフィールド名をキーとした連想配列で指定します。emailとpasswordは必須項目です。上記でも述べましたが、このcreateメソッドは単独では使用できません。必ず、getUserProvider()メソッドのチェーンメソッドとして使用します。同様に後で出てくると思いますが、グループを作成するためのcreateメソッドもあります。

    $user=array('email'=>'nakada@gmail.com','password'=>'test');
    Sentry::getUserProvider()->create($user);
  • addGroup(グループのオブジェクト)
    このメソッドは、ユーザーにグループを割り当てるときに使用します。
  • register(ユーザー情報)
    このメソッドはユーザーを登録及びアクティベートするためにの静的メソッドです。上記のcreateメソッドとの違いは、既にユーザーが存在してアクティベートされていないときには、新しいアクティベーションコードを作成します。

    $user=Sentry::register(array(
    'email'=>'nakada@gmail.com',
    'password'=>'test',
    ));
    $activationCode=$user->getActivationCode();
  • getActiovationCode()
    上記例で出てきましたが、アクティベーションコードを作成するためのメソッドです。このメソッドは、registerメソッドのチェーンメソッドとして使用します。
  • save()
    ユーザー情報を更新するために使用します。getUserProviderのチェーンメソッドとして使用します。

    $user=Sentry::getUserProvider()->findByID(1);
    $user->email='yamada@gmail.com';
    $user->first_name='太郎';
    $user->save();
  • removeGroup(グループのオブジェクト)
    ユーザーの所属するグループを変更する場合に使用します。getUserProviderのチェーンメソッドとして使用します。

    $user=Sentry::getUserProvider()->findById(1);
    $group=Sentry::getGroupProvider()->findById(1);
    $user->removeGroup($group);
  • delete()
    ユーザーを削除する場合に使用します。getUserProviderのチェーンメソッドとして使用します。

    $user=Sentry::getUserProvider()->findById(1);
    $user->delete();
  • attemptActivation(アクティベーションコード)
    ユーザーをアクティベートするときに使用します。getUserProviderのチェーンメソッドとして使用します。

    $user=Sentry::getUserProvider()->findById(1);
     $user->attemptActivation('kitl896ulDbiRkgo8$ok91ItEgO');
  • getResetPassrordCode()
    パスワードをリセットするためのリセットコードを取得するために使用します。getUserProviderのチェンメソッドとして使用します。

    $user=Sentry::getUserProvider()->findByLogin('nakada@gmail.com');
     //リセットコードの取得
     $resetCode=$user->getResetPasswordCode();
     //リセットコードのチェック
     if($user->checkResetPasswordCode($resetCode){
     //パスワードのリセット
     $user->attemptResetPassword($resetCode,$new_password);
     }
  • checkResetPasswordCode(リセットコード)
    上記参照。リセットコードをチェックするためのメソッドです。
  • attemptResetPassword(リセットコード)
    上記参照。パスワードをリセットするためのメソッドです。

ユーザー検索関連メソッド

  • getUser()
    ログイン中のユーザーを取得するための静的メソッドです。

    $user=Sentry::getUser();
  • findById(ユーザーID)
    ユーザーIDでユーザーを検索するためのメソッドです。以下は、getUserProviderのチェーンメソッドです。

    Sentry::getUserProvider()->findById(1);
  • findByLogin(メールアドレス)
    メールアドレスでユーザーを検索するためのメソッドです。
  • findAll()
    登録されているすべてのユーザーを取得するためのメソッドです。
  • findAllWithAccess(パーミッションの配列)
    指定したパーミッションの全ユーザーを取得するためのメソッドです。

    Sentry::getUserProvider()->findAllWithAccess(array('atmin','other'));
  • findAllInGroup(グループの配列)
    指定したグループに所属する全ユーザーを取得するためのメソッドです。
  • findByActivationCode(アクティベーションコード)
    指定したアクティベーションコードからユーザーを検索するためのメソッドです。
  • findByResetPasswordCode(リセットコード)
    指定したリセットコードからユーザーを検索するためのメソッドです。

ユーザー関連ヘルパーメソッド

  • checkPassword(パスワード)
    指定したパスワードが正しいかどうかをチェックするメソッドです。
  • getGroups()
    ユーザーの所属するグループを取得するためのメソッドです。

    $user=Sentry::getUserProvider()->findById(1);
     $groups=$user->getGroups();
  • getPermissions()
    ユーザーのパーミッションを取得するためのメソッドです。
  • hasAccess(パーミッション)
    指定したパーミッションで、アクセスできるかどうかを調べるためのメソッドです。trueまたは、falseを返します。
  • hasAnyAccess(パーミッションの配列)
    指定したパーミション配列の全てにアクセスできるかどうかを調べるためのメソッドです。tureまたは、falseを返します。
  • isActivated()
    ユーザーがアクティベーションしているかどうかを調べるためのメソッドです。trueまたは、falseを返します。
  • isSuperUser()
    ユーザーがスーパーユーザーかどうかを調べるためのメソッドです。trueまたは、falseを返します。
  • inGroup(グループ)
    指定のグループに所属しているかどうかを調べるためのメソッドです。trueまたは、falseを返します。

グループ関連のメソッド

  • getGroupProvider()
    GroupProviderをインスタンス化するための静的メソッドです。
  • create(グループ情報の連想配列)
    グループを作成するためのメソッドです。groupsテーブルのフィールド名をキーとした連想配列をセットします。getGroupProviderのチェーンメソッドとして使用します。

    Sentry::getGroupProvider()->create(array(
     'name'=>'Administrators',
     'permissions'=>array(
     'admin'=>1,
     'users'=>1,
     ),
     ));
  • save()
    グループ情報を更新するために使用します。

    $group=Sentry::getGroupProvider()->findById(1);
     //修正するデータをセット
     $group->name='Moderators';
     $group->permissions=array(
     'admin'=>0,
     'users'=>1,
     );
     //データの更新
     $group->save();
  • delete()
    グループを削除するために使用します。

グループを検索するためのメソッド

  • findAll()
    グループ全体を取得します。
  • findById(グループID)
    指定したIDのグルーブを検索します。
  • findByName(グループ名)
    指定したグループ名を検索します。

グループ関連のヘルパー

  • getPermissions()
    グループのパーミッションを取得します。

スロットル(制限)関連のメソッド

  • getThrottleProvider()
    スロットルをインスタンス化するための静的メソッドです。
  • disable()
    スロットルを無効にするためのメソッドです。getThrottoleProviderのチェーンメソッドとして使用します。
  • enable()
    スロットルを有効にするためのメソッドです。getThrottoleProviderのチェーンメソッドとして使用します。

    $throttle=Sentry::getThrottleProvider();
     //スロットルの有効化
     $throttle->enable();
  • isEnabled()
    スロットルが有効かどうかを調べます。trueまたは、falseを返します。

ユーザーをスロットリング(機能制限)する為のメソッド

  • ban()
    ユーザーを使用禁止にするためのメソッドです。
  • unban()
    ユーザーを使用可にするためのメソッドです。
  • isBanned()
    ユーザーが使用禁止かどうかを調べます。trueまたは、falseを返します。
  • suspned()
    ユーザーの使用を中断するためのメソッドです。
  • unsuspend()
    ユーザーの使用中断を解除するためのメソッドです。
  • isSuepended()
    ユーザーの使用が中断されているかどうかを調べます。trueまたは、faleを返します。
  • setSuspnsintTime(秒);
    ユーザーの使用を中断する時間(秒数?)を指定します。
  • getSuspentionTime()
    ユーザーの使用中断時間を調べます。
  • addLoginAttempt()
    ログインの試みを追加します(いまいち意味不明です)。
  • getLoginAttempt()
    ログインの試みを取得します。
  • ClearLoginAttempt()
    ログインの試みをクリアします。
  • check()
    スロットルをチェックします。
  • setAttemptLimit(回数)
    ログインを試みる事の出来る回数を指定します。
  • getAttemptLimt()
    ログインを試みる事の出来る回数を取得します。

スロットルユーザーの検索

  • findByUserId(ユーザーID)
    指定したユーザーIDからスロットルを取得します。
  • findByUserLogin(メールアドレス)
    指定したメールアドレスからスロットルを取得します。

疲れました。後は実際にユーザー管理アプリを作成しながら使い方を覚えてください。

本日は以上です。

このエントリーを含むはてなブックマーク Buzzurlにブックマーク livedoorクリップ Yahoo!ブックマークに登録

トラックバック&コメント

この投稿のトラックバックURL:

コメントをどうぞ

このページの先頭へ