我环顾四周,发现了一些关于使用or和进行Laravel 4
身份验证的教程。这对我来说很好但有点模糊,我是初学者,这是我的第一个框架。Sentry
Confide
Entrust
Laravel
有谁知道使用用户角色实现用户身份验证的任何教程或建议。
这是我想要做的。- 它是一个内部工作网站。作者可以登录并提交文章的地方。- 管理员可以浏览这些文章。- 这些文章不公开,因此没有人可以查看它们。- 作家不能看到彼此的文章,但管理员可以访问所有内容。
我只是在寻找有关用户角色以及如何实现它们的教程。
编辑
这就是我最终做的。以@Antonio Carlos Ribeiro指定的方式安装 Sentry 之后。
我有Users、Groups和其他几张表(我只需要使用 user 和 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);
}
}
添加初始用户后,我使用表单添加新用户,所以在我的控制器中我有这样的东西。同样,这仅用于学习/测试框架,原始实现非常不同。但出于测试目的,这应该有效。
假设你有一个提交给控制器@函数的表单,你可以有这样的东西,
$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
随意编辑此问题以使其提供更多信息或添加新示例。