问题标签 [yii2-user-roles]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5057 浏览

php - 获取用户角色 - Yii2

我正在为登录用户搜索用户角色,但我不知道如何打印用户角色名称。我试过这个:

什么时候,我做到了print_r($Role);我懂了 :

我正在寻找特定的角色名称,但我无法访问

输入时print_r($Role[0]->name);出现错误,例如

PHP 通知 – yii\base\ErrorException

未定义的偏移量:0

而且,如果我喜欢这种方式(意味着手动传递$rolename给数组索引)它正在工作。

为什么这个要求来找我,因为登录用户没关系。但是,如果我想知道其他用户角色名称,那么我需要将索引名称传递到这里$Role[$roleName]->name

请帮助我访问这个“超级管理员”。我不知道如何获取它的索引名称。

我还检查了获取用户角色和用户的特定角色

0 投票
1 回答
586 浏览

php - MySQL授予权限访问拒绝

我有一个 Yii2 项目,它操作一些数据库。它有一个基本的数据库连接,我在其中保存用户身份验证数据,第二个连接指向为每个用户自动创建的数据库。

我必须以编程方式创建数据库;所以,我有一个project具有全局授予权限和通配符权限的用户project\_%。*。我就是做这个的:

$dbname is 'project_'.randomString(8).

我仔细检查了所有project权限,检查了mysql. user而且information_scheme,我也有可授予的权限和授予选项,但仍然出现访问错误:

SQLSTATE [42000]:语法错误或访问冲突:1044 用户'project'@'localhost' 拒绝访问数据库'project_sck6jdyb' 正在执行的SQL 是:GRANT ALL PRIVILEGES ON project_sck6jdyb.* TO 'pu_sck6jDyB'@'localhost'。

MySQL version is 5.6.21XAMPP, 在Windows下运行。这是一个错误,还是我做错了什么?

更新:SHOW GRANTS for project@localhost;

GRANT INSERT, CREATE, DROP, RELOAD, INDEX, ALTER, SUPER, CREATE USER ON *.*TO 'project'@'localhost' IDENTIFIED by PASSWORD '*[secret]' WITH GRANT 选项

将 .* 上的所有权限授予project'project'@'localhost'

GRANT ALL PRIVILEGES ON project\_%.* TO 'project'@'localhost' WITH GRANT OPTION

0 投票
1 回答
195 浏览

yii2 - Yii2 角色和用户

我可以在 authManager 中静态定义角色(在defaultRoles配置中的数组中)并将它们分配给用户,以便行为规则定义对操作的访问吗?
由于我有某些角色,我不想使用auth_assignmentandauth_item和 ...
假设我在用户表中为角色创建列,并且每个用户都有一个角色,并且角色在配置文件中定义。

事实上,我想为管理员用户构建访问规则,如“管理员”(yii 表示“@”表示经过身份验证的用户,“?”表示来宾)。

0 投票
1 回答
6518 浏览

yii2-user - 如何更改/更新用户角色?Yii2

我正在使用 yii2 基于角色的访问控制 (RBAC) 系统。我定义了角色和权限,定义了规则,为用户分配了角色。一切正常。

但我想更新分配给用户的角色。例如:

在这里,我做了用户 id 11 管理员。现在我想更新和改变。我想做这个用户管理器。

当我尝试:

这个用户有管理员+经理。我只想将此用户角色管理员更新为经理。

我怎样才能做到这一点?

0 投票
2 回答
1305 浏览

authentication - Yii2 中的用户角色,来自 DB 值

一开始这听起来可能是重复的,但可用的答案不够清晰,也不能解决我的问题。

我有一个用户数据库列表,一个元组看起来像下面这样。

现在我想创建一种名为 manager 的用户,并在控制器中设置这样的访问控制。

我试图以最少的麻烦来实现这一点,但我对 yii/yii2 并不是很熟悉。RBAC 实际上让我感到困惑,我发现很难理解文档。

我只需要创建三种类型的用户角色。我了解控制对各种操作的访问。

用户数据来自将由另一个应用程序实时修改的表。

0 投票
1 回答
747 浏览

yii2-basic-app - 如何根据 yii2 中的角色更改 Admin LTE 侧边栏上的菜单?

我正在使用 Yii2 基础版。

我有 Employee 表,并在配置文件中将 Employee 模型分配给用户应用程序组件,如下所示:

我还使用 RBAC 为员工创建了权限、角色和分配角色。

1.现在当角色为admin的员工登录时,他可以在Admin LTE的侧边栏看到以下菜单:

  1. 硕士
  2. 员工
  3. 员工培训
  4. SHG简介
  5. 民意调查

当角色为外勤人员的员工登录时,他还会在侧边栏上看到上面的菜单。Fieldofficer 应该只看到以下菜单:

  1. 我的简历
  2. SHG简介

如何根据员工的角色更改 Admin LTE 侧边栏上的菜单?

2.员工必须分配角色才能登录系统。如何做到这一点?

0 投票
0 回答
43 浏览

yii2-basic-app - 如何根据角色将仪表板更改为yii2中的员工?

我正在使用 yii2 basic 和 Admin LTE

我有 Employee 表,我已将 Employee 模型分配给用户应用程序组件并实现了 RBAC。

我有仪表板控制器和视图。

1.现在当 admin 登录后,点击 Dashboard 菜单,他可以看到 4 个显示统计信息的信息框,如下所示:

  1. 员工总数
  2. SHG 集团总数
  3. 教会总数
  4. 总课程

2.现在当外勤人员登录并点击仪表板时,他也可以查看相同的统计数据。

fieldofficer 仅创建、查看、更新和删除他自己创建的 SHGGroup。

因此,他的仪表板上的外勤人员应该只能看到一个信息框,显示他拥有/创建的 SHGGroup 总数

如何做到这一点?

0 投票
0 回答
47 浏览

yii2-basic-app - 只有在yii2中的管理员分配了角色时,如何允许员工登录系统?

我正在使用 yii2 basic 并使用权限、角色实现了 RBAC。

我有 Employee 表,并且已将 Employee 模型分配给用户应用程序组件。

现在的情况是,当管理员创建员工时,他必须使用 auth_assignment CRUD 为该员工分配角色。

除非并且直到分配了角色,否则员工应该无法登录。登录页面应该向他显示错误消息。(类似于用户输入错误的用户名或密码的场景。)

如何做到这一点?

0 投票
1 回答
1089 浏览

yii2 - Yii2-如何限制用户在索引页面中查看其他数据

我正在yii2我的项目中工作,我有用户和他们的角色。每个角色都可以访问一个模块和一个子菜单。有一个名为的子菜单,可以SIM List在其中查看所有SIM记录。有一个名为的字段issued_to告诉我们哪个 SIM 已发给哪个用户。

除非向任何用户发放 SIM 卡,否则该issued_to字段将保持为空。一旦发布,用户的名字就会出现在SIM List.

现在我想以只有特定用户才能看到列表的方式对其进行管理。例如5 Sims已发给名为U. 现在用户U应该只看到发给他的 SIM 记录,否则列表应该是空的。

在我的Index控制器中,我得到issued_to的字段名称默认为空。

通过执行以下操作,我可以获得issued_to用户 ID

现在在这个控制器中,我想添加一个检查,user_id它只给我那个特定用户的记录。

索引视图

更新 1

search model的在下面

我怎样才能实现它?任何帮助将不胜感激。

0 投票
3 回答
245 浏览

yii2 - How to hide admin account from other users

I am working on yii2. I have some user roles. Admin has all the level of access. Other users have a low level of access. There is a user list which is visible to the other user. In this list all of the details of the users in the system is available. Now, I want to hide some user information from other users. The roles I want to hide are 1,6,7,8 and the role of which I want to hide is 5. Other than the mentioned user roles should be visible to 5. For this, I have updated the index controller.

Now on running my project, I am only seeing the admin user. In $queryParams['UserSearch']['user_role']= I have tried to pass the single value of user role 5 and it does shows me only 5 role users. But I want to show the users with role 2,3,4,5.

Update 1

My search model

Any help would be highly appreciated.