Fixes #4489: RBAC PhpManager wasn't saving multiple assignmentsFixes #4489: RBAC PhpManager wasn't saving multiple assignments properly

This commit is contained in:
Alexander Makarov
2014-07-28 22:09:38 +04:00
parent fedf8eccd9
commit d1ccb92a34
5 changed files with 47 additions and 10 deletions

View File

@@ -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']);
}

View File

@@ -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);