roles 相关问题

在各种访问控制系统中,角色定义一组用户并将权限组织成更易于管理的结构。

了解受保护分支推送和合并角色属性

在Gitlab(社区版v16.6.2)中,受保护分支配置页面,我们可以为“允许合并”和“允许推送合并”分配角色。 允许推动小鬼...

回答 1 投票 0

如何使用 next-auth/authjs nextjs/13/14 按角色创建路由?

如何按角色保护私有路由。也就是说,如果我是用户类型“user”,我可以访问 /normal 路由,如果我是管理员,我可以访问 /admin 路由。也就是说,mul...

回答 1 投票 0

qt 模型中的角色是什么以及 setRoleNames() 的作用是什么?

我必须在qml中使用某种c++ qt模型。我已经有了 QStandardItemModel,但由于所谓的 setRoleNames(),它在 QML 中不起作用。我一直在寻找一些角色的解释......

回答 2 投票 0

Symfony 6.2 被授予多种角色

当我想向具有不同角色的用户授予访问权限时,我遇到了问题。 当我在表上下文中存储一些角色时,我为此创建了一个自定义投票者。 当我想向具有不同角色的用户授予访问权限时,我遇到了问题。 当我在表上下文中存储一些角色时,我为此创建了一个自定义投票者。 <?php namespace App\Security\Voter; use App\Constants\UserRoles; use App\Entity\Team; use App\Entity\User; use App\Repository\UserTeamRepository; use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; use Symfony\Component\Security\Core\Authorization\Voter\Voter; class TeamVoter extends Voter { public function __construct( private UserTeamRepository $userTeamRepository, ) {} /** * @inheritDoc */ protected function supports(string $attribute, mixed $subject): bool { if (!in_array($attribute, UserRoles::TEAM_ROLES)) { return false; } return $subject instanceof Team; } /** * @inheritDoc */ protected function voteOnAttribute(string $attribute, mixed $subject, TokenInterface $token): bool { $user = $token->getUser(); if (!$user instanceof User) { return false; } $team = $subject; if (in_array($attribute, UserRoles::TEAM_RELATED_ROLES)) { return $this->voteOnTeamRelatedAttribute($attribute, $user, $team); } return match($attribute) { UserRoles::ROLE_TEAM_ADMIN => $this->canEdit($user, $team), UserRoles::ROLE_TEAM_OWNER => $this->canDelete($user, $team), default => false, }; } private function voteOnTeamRelatedAttribute(string $attribute, User $user, Team $team): bool { $userRoles = $this->userTeamRepository->getUserTeamRoles($user, $team->getExternalUuid()); if (!$userRoles) { return false; } return match($attribute) { UserRoles::ROLE_TEAM_MEMBER_ADMIN => in_array(UserRoles::ROLE_TEAM_MEMBER_ADMIN, $userRoles), UserRoles::ROLE_TEAM_MEMBER => in_array(UserRoles::ROLE_TEAM_MEMBER, $userRoles), default => false, }; } private function canEdit(User $user, Team $team): bool { if ($this->canDelete($user, $team)) { return true; } return in_array(UserRoles::ROLE_TEAM_ADMIN, $user->getRoles()); } public function canDelete(User $user, Team $team): bool { return $team->getOwner() === $user || $team->getCreator() === $user; } } 现在我希望具有角色 ROLE_TEAM_ADMIN 的用户或具有角色 ROLE_TEAM_MEMBER_ADMIN 的用户可以访问该方法(注意: ROLE_TEAM_ADMIN 更多的是编辑所有团队的全局角色,而 ROLE_TEAM_MEMBER_ADMIN 更专注于单个团队,因此自定义投票者检查mm表的内容) 这是我的控制器中受保护的方法: #[Route('/rest/team/{externalUuid}/member/add', name: 'add_team_member', methods: ["PUT"])] #[IsGranted(UserRoles::ROLE_TEAM_ADMIN, subject: 'team'), IsGranted(UserRoles::ROLE_TEAM_MEMBER_ADMIN, subject: 'team')] public function addTeamMember(Request $request, Team $team): JsonResponse { $request = $this->transformJsonBody($request); ... 文档表示可以配置授予决策策略,但其默认值设置为“肯定”,这意味着如果参与授予的其中一位投票者表示可以,则授予访问权限。 我的问题是,这并没有按预期工作,而是遵循“一致”决策模式。我已经浏览过 stackoverflow 上的这个主题,有些人建议使用表达式,但这些答案已经过时了,因为它适用于 symfony 5 和已弃用的 Sensio 安全包。 调试后,我注意到 Symfony\Component\Security\Core\Authorization\AccessDecisionManager 类收集结果(在collectResults方法中),查找投票者并在此基础上构建其决策,但属性数组始终带有一个属性只是。 所以我猜我的注释是以错误的方式定义的,但我在文档中找不到任何有关如何处理决策管理器的相关示例,显然设置一个又一个注释是不够的。 有人有好的方法来处理这个问题吗? 我相信使用多个 IsGranted() 调用与使用表达式 $this->isGranted() && $this->isGranted() 相同。 要使用 OR 逻辑运算符而不是 AND,请查看 表达式语法。您可以在基础 #[IsGranted(string)] 的能力之上进行非常复杂的检查: use Symfony\Component\ExpressionLanguage\Expression; // ... #[Route('/rest/team/{externalUuid}/member/add', name: 'add_team_member', methods: ["PUT"])] #[IsGranted( new Expression( 'is_granted("' . UserRoles::ROLE_TEAM_ADMIN . '", subject) or ' . 'is_granted("' . UserRoles::ROLE_TEAM_MEMBER_ADMIN . '", subject)' ), subject: 'team' ] public function addTeamMember(Request $request, Team $team): JsonResponse { $request = $this->transformJsonBody($request); // ... }

回答 1 投票 0

检查用户是否具有Discord.net角色

我正在使用 Discord.net,但我无法让此代码工作...... 我的代码 使用系统; 使用系统.IO; 使用 System.Linq; 使用 System.Threading.Tasks; 使用不和谐; 使用 Discord.WebSo...

回答 1 投票 0

Kubernetes 中的 RBAC

我正在 Minikube 上练习 Kubernetes 中的 RBAC。我已经创建了一个具有批准证书的用户。现在,我想与该用户练习角色和角色绑定。然而,当我尝试访问 Min...

回答 1 投票 0

为什么 CloudFormation 使用奇怪的角色来执行更新?

我试图更新堆栈以向角色添加策略。我用于推送堆栈更新的角色具有 AdministratorAccess,因此我预计更新不会遇到权限问题。然而,...

回答 1 投票 0

如何使用 PHP 和 Postman 来使用 Azure 应用程序角色

有关 Azure 应用程序角色和 PHP 的几个问题。 据我了解,我可以通过 REST API 或 Microsoft Graph 获取应用程序角色。我希望使用 API 路线并在 Stack 上找到了一些帖子

回答 1 投票 0

为什么我的角色无法在我的 MySQL 数据库中发挥作用?

我目前正在学习MySQL中的用户权限和角色。目前,我正在学习如何创建自定义角色,向他们授予权限,最后创建一些用户只是为了测试这个......

回答 2 投票 0

liferay 7.4 - 我尝试以编程方式添加角色,但在尝试查看角色页面时出现错误

我正在尝试以编程方式添加角色。它最初有效。我可以在数据库中看到它,但是当我以管理员身份登录门户时,当我进入角色页面时出现错误“Ro...

回答 1 投票 0

如何以编程方式设置 Strapi 用户角色?

我正在使用 Strapi 3.6.10。 当我通过 http://host:1337/auth/local/register 创建用户时,我无法实现所需的用户角色。它始终是经过身份验证的,即使我直接将其设置为另一个......

回答 1 投票 0

无法将 KMS 密钥应用到 AWS CloudWatch 日志组

我尝试在 Amazon CloudWatch 中创建日志组时添加对称 KMS 密钥。我已经以 root 用户身份登录。密钥已创建并且确实存在。但仍然出现以下错误: 有吗

回答 1 投票 0

Spring Boot - Keykloak 角色不可用

如何将 keycloak 角色引入我的 Spring boot 应用程序? 设置好项目后,登录和注销工作正常,但是keycloak中定义的角色在spring内部不可用...

回答 1 投票 0

可以创建帖子但看不到为帖子工具安装的插件的 WordPress 用户角色

当我在 WordPress 帐户中分配角色(例如可以创建帖子的编辑或作者)时,他们无法查看或使用帖子工具中安装/集成的插件(例如:复制...

回答 1 投票 0

创建 AKS 集群的最低权限

创建 AKS 集群所需的最低权限是什么? 需要知道应用程序附加的“工作功能角色”列表(在应用程序注册中创建)以及这些角色

回答 1 投票 0

目标类 [Spatie\Permission\Middlewares\RoleMiddleware] 不存在

好吧,我对 laravel 还算陌生,我正在尝试使用 Spatie 来获取角色和权限,但还是发生了这个错误,即使我已经在 kernel.php 中编写了类名: 好吧,我对 laravel 还算陌生,我正在尝试使用 Spatie 来获取角色和权限,但还是发生了这个错误,即使我已经在 kernel.php 中编写了类名: <?php namespace App\Http; use Illuminate\Foundation\Http\Kernel as HttpKernel; class Kernel extends HttpKernel { /** * The application's global HTTP middleware stack. * * These middleware are run during every request to your application. * * @var array<int, class-string|string> */ protected $middleware = [ // \App\Http\Middleware\TrustHosts::class, \App\Http\Middleware\TrustProxies::class, \Illuminate\Http\Middleware\HandleCors::class, \App\Http\Middleware\PreventRequestsDuringMaintenance::class, \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class, \App\Http\Middleware\TrimStrings::class, \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class, ]; /** * The application's route middleware groups. * * @var array<string, array<int, class-string|string>> */ protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, ], 'api' => [ // \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, \Illuminate\Routing\Middleware\ThrottleRequests::class.':api', \Illuminate\Routing\Middleware\SubstituteBindings::class, ], ]; /** * The application's middleware aliases. * * Aliases may be used instead of class names to conveniently assign middleware to routes and groups. * * @var array<string, class-string|string> */ protected $middlewareAliases = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'auth.session' => \Illuminate\Session\Middleware\AuthenticateSession::class, 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, 'can' => \Illuminate\Auth\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, 'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class, 'precognitive' => \Illuminate\Foundation\Http\Middleware\HandlePrecognitiveRequests::class, **'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,** 'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class, 'signed' => \App\Http\Middleware\ValidateSignature::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, ]; } 我是否遗漏了什么或写错了什么? (顺便说一句,如果有帮助的话,我使用 Laravel v10.30.1) 我尝试使用此路由访问视图: Route::middleware('role:super-admin')->get('/dashboard', [AdminController::class, 'index'])->name('admin'); 供应商框架告诉我这一点: \public\index.php : 51 require_once 下面是发生错误的行: $app = require_once __DIR__.'/../bootstrap/app.php'; $kernel = $app->make(Kernel::class); **$response = $kernel->handle(** $request = Request::capture() )->send(); 尝试使用 \Middleware\ 代替 \Middlewares\ 'role' => \Spatie\Permission\Middleware\RoleMiddleware::class, 'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class, 'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class,

回答 1 投票 0

自从在 PostgreSQL 中使用某些登录/角色后,EF Core 更新不起作用

我尝试更新现有的数据库(代码优先)。表 __EFMigrationsHistory 已经存在,它应该只是一个更新。 这是我在对数据库进行一些更改后遇到的错误...

回答 1 投票 0

有没有办法使用cloudformation创建aws lambda执行角色?

我正在尝试使用 cloudformation 创建一个 lambda 函数,但它需要 lambda 执行角色 - 有没有一种方法可以使用 cloudformation 生成一个 lambda 函数?

回答 2 投票 0

node.js 中的用户角色和规则(权限)访问

我创建了一个node.js应用程序(巴士票预订应用程序)。 MongoDB 是我正在使用的数据库系统。我还没有完成前端。我正在使用 Postman 进行 API 查询。 为了认证,我...

回答 2 投票 0

AWS EKS 集群和节点创建 IAM 角色

当您尝试创建 EKS 集群时,会有一个 IAM 角色框,同样,当您尝试创建工作节点时,会有一个 IAM 角色框。该框是空白的,有一个下拉菜单。我不是

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.