mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-24 18:51:27 +08:00
Fixes #4489: RBAC PhpManager wasn't saving multiple assignmentsFixes #4489: RBAC PhpManager wasn't saving multiple assignments properly
This commit is contained in:
@@ -117,7 +117,7 @@ new ones save the following code as `convert.php` that should be placed in the s
|
||||
foreach ($oldData['items'] as $name => $data) {
|
||||
if (isset($data['assignments'])) {
|
||||
foreach ($data['assignments'] as $userId => $assignmentData) {
|
||||
$assignments[$userId] = $assignmentData['roleName'];
|
||||
$assignments[$userId][] = $assignmentData['roleName'];
|
||||
}
|
||||
unset($data['assignments']);
|
||||
}
|
||||
|
||||
@@ -644,12 +644,14 @@ class PhpManager extends BaseManager
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($assignments as $userId => $role) {
|
||||
$this->assignments[$userId][$role] = new Assignment([
|
||||
'userId' => $userId,
|
||||
'roleName' => $role,
|
||||
'createdAt' => $assignmentsMtime,
|
||||
]);
|
||||
foreach ($assignments as $userId => $roles) {
|
||||
foreach ($roles as $role) {
|
||||
$this->assignments[$userId][$role] = new Assignment([
|
||||
'userId' => $userId,
|
||||
'roleName' => $role,
|
||||
'createdAt' => $assignmentsMtime,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($rules as $name => $ruleData) {
|
||||
@@ -730,7 +732,7 @@ class PhpManager extends BaseManager
|
||||
foreach ($this->assignments as $userId => $assignments) {
|
||||
foreach ($assignments as $name => $assignment) {
|
||||
/* @var $assignment Assignment */
|
||||
$assignmentData[$userId] = $assignment->roleName;
|
||||
$assignmentData[$userId][] = $assignment->roleName;
|
||||
}
|
||||
}
|
||||
$this->saveToFile($assignmentData, $this->assignmentFile);
|
||||
|
||||
Reference in New Issue
Block a user