gpt4 book ai didi

laravel - 如何: implement sentry 2 permissions with Laravel 4?

转载 作者:行者123 更新时间:2023-12-02 10:40:23 34 4
gpt4 key购买 nike

我正在尝试在使用 Laravel 4 构建的网站中使用 cartalyst Sentry 2。基本上我不明白如何实现权限。

我见过的组权限示例指定以下内容作为示例:

{
"name" : "Administrator",
"permissions" :
{
"user.create" : 1,
"user.delete" : 1,
"user.view" : 1,
"user.update" : 1
}
}

这是为管理员组设置权限。但是这些权限在哪里设置呢?

在“组”表中,有一个名为“权限”的字段,它是一个文本字段 - 它们是否在那里设置 - 如果是,如何设置?或者这些是在模型或 Controller 中设置的吗?

任何人都可以指导我逐步了解如何在 laravel 4 应用程序中使用吗?我已经阅读了这些函数的支持文档,但我只是不确定如何设置数据以使函数正常工作。

最佳答案

基本上你必须..

创建您的群组

Sentry::getGroupProvider()->create([
'name' => 'Super Administrators',
'permissions' => [
'system' => 1,
],
]);

Sentry::getGroupProvider()->create([
'name' => 'Managers',
'permissions' => [
'system.products' => 1,
'system.store' => 1,
'system.profile' => 1,
],
]);

将组设置为特定用户,在本例中是将管理员设置为当前登录的用户

Sentry::getUser()->addGroup( Sentry::getGroupProvider()->findByName('Managers') );

检查用户是否具有特定访问权限

if ( Sentry::getUser()->hasAnyAccess(['system','system.products']) )
{
// Will be able to do a thing
}

检查用户是否是 super 管理员(只有该组具有“系统”访问权限)

if ( Sentry::getUser()->hasAnyAccess(['system']) )
{
// Will be able to do a thing
}

获取特定用户的所有组

try
{
// Find the user using the user id
$user = Sentry::getUserProvider()->findById(1);

// Get the user groups
$groups = $user->getGroups();
}
catch (Cartalyst\Sentry\Users\UserNotFoundException $e)
{
echo 'User was not found.';
}

关于laravel - 如何: implement sentry 2 permissions with Laravel 4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17012553/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com