私は周りを見回して、orとを使用したLaravel 4
認証に関するいくつかのチュートリアルを見つけました。私は初心者で、これが私の最初のフレームワークです。Sentry
Confide
Entrust
Laravel
ユーザーロールを使用したユーザー認証を実装するチュートリアルまたは提案を知っている人はいますか?
これが私が作ろうとしているものです。- 仕事用の社内ウェブサイトです。ライターがサインインして記事を送信できる場所。- 管理者はそれらの記事を参照できます。- これらの記事は公開されていないため、誰も閲覧できません。- ライターはお互いの記事を見ることはできませんが、管理者はすべてにアクセスできます。
ユーザーの役割とその実装方法に関するチュートリアルを探しています。
編集
これが私がやったことです。@Antonio Carlos Ribeiroで指定された方法で Sentry をインストールした後。
Users、Groups、および他のいくつかのテーブルがありました(ユーザーとグループを使用する必要がありました)。
ユーザーとグループの作成に最初に使用したシーダーは次のとおりです。より効率的にすることもできますが、始めたいだけの人にとってはこれでうまくいくでしょう。
class SentrySeeder extends Seeder {
public function run()
{
DB::table('users')->delete();
DB::table('groups')->delete();
DB::table('users_groups')->delete();
Sentry::getUserProvider()->create(array(
'email' => 'admin@admin.com',
'password' => "admin",
'first_name' => 'John',
'last_name' => 'McClane',
'activated' => 1,
));
Sentry::getUserProvider()->create(array(
'email' => 'user@user.com',
'password' => "user",
'first_name' => 'Saad',
'last_name' => 'Kabir',
'activated' => 1,
));
Sentry::getUserProvider()->create(array(
'email' => 'jack@user.com',
'password' => "user",
'first_name' => 'Jack',
'last_name' => 'Doe',
'activated' => 1,
));
Sentry::getUserProvider()->create(array(
'email' => 'jon@user.com',
'password' => "user",
'first_name' => 'Jon',
'last_name' => 'Doe',
'activated' => 1,
));
Sentry::getGroupProvider()->create(array(
'name' => 'Admin',
'permissions' => array('admin' => 1),
));
Sentry::getGroupProvider()->create(array(
'name' => 'Writer',
'permissions' => array('writer' => 1),
));
// Assign user permissions
$adminUser = Sentry::getUserProvider()->findByLogin('admin@admin.com');
$adminGroup = Sentry::getGroupProvider()->findByName('Admin');
$adminUser->addGroup($adminGroup);
$userUser = Sentry::getUserProvider()->findByLogin('user@user.com');
$userGroup = Sentry::getGroupProvider()->findByName('Writer');
$userUser->addGroup($userGroup);
$userUser = Sentry::getUserProvider()->findByLogin('jack@user.com');
$userGroup = Sentry::getGroupProvider()->findByName('Writer');
$userUser->addGroup($userGroup);
$userUser = Sentry::getUserProvider()->findByLogin('jon@user.com');
$userGroup = Sentry::getGroupProvider()->findByName('Writer');
$userUser->addGroup($userGroup);
}
}
最初のユーザーを追加した後、フォームを使用して新しいユーザーを追加していたので、コントローラーには次のようなものがありました。繰り返しますが、これはフレームワークを学習/テストするためのものであり、元の実装は非常に異なります。ただし、テスト目的では、これは機能するはずです。
controller@function に送信するフォームがあると仮定すると、次のようなものを持つことができます。
$user = Sentry::getUserProvider()->create(array(
'email' => Input::get('email'),
'password' => Input::get('password'),
'first_name' => Input::get('first_name'),
'last_name' => Input::get('last_name'),
'activated' => 1,
));
$writerGroup = Sentry::getGroupProvider()->findByName('writer');
$user->addGroup($writerGroup);
Sentry のドキュメントで見つけることができる残りの部分: Sentry Docs
この質問を自由に編集して、より有益なものにしたり、新しい例を追加したりしてください。