From ce9a8f209a6528b7e77eabe00d3324aff0c12c29 Mon Sep 17 00:00:00 2001 From: Qiang Xue Date: Wed, 16 Apr 2014 10:17:28 -0400 Subject: [PATCH] Fixes #3132: `yii\rbac\PhpManager` now supports more compact data file format --- framework/CHANGELOG.md | 1 + framework/rbac/PhpManager.php | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 9359607..eee8ce8 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -9,6 +9,7 @@ Yii Framework 2 Change Log - Bug #3128: Fixed the bug that `defaultRoles` set in RBAC manager was not working as specified (qiangxue) - Enh #3103: debugger panel is now not displayed when printing a page (githubjeka) - Enh #3108: Added `yii\debug\Module::enableDebugLogs` to disable logging debug logs by default (qiangxue) +- Enh #3132: `yii\rbac\PhpManager` now supports more compact data file format (qiangxue) - Enh: Added support for using sub-queries when building a DB query with `IN` condition (qiangxue) - Chg: Replaced `clearAll()` and `clearAllAssignments()` in `yii\rbac\ManagerInterface` with `removeAll()`, `removeAllRoles()`, `removeAllPermissions()`, `removeAllRules()` and `removeAllAssignments()` (qiangxue) diff --git a/framework/rbac/PhpManager.php b/framework/rbac/PhpManager.php index d99cdfc..cd6a82f 100644 --- a/framework/rbac/PhpManager.php +++ b/framework/rbac/PhpManager.php @@ -608,11 +608,11 @@ class PhpManager extends BaseManager $this->_items[$name] = new $class([ 'name' => $name, - 'description' => $item['description'], - 'ruleName' => $item['ruleName'], - 'data' => $item['data'], - 'createdAt' => isset($item['createdAt']) ? $item['createdAt'] : time(), - 'updatedAt' => isset($item['updatedAt']) ? $item['updatedAt'] : time(), + 'description' => isset($item['description']) ? $item['description'] : null, + 'ruleName' => isset($item['ruleName']) ? $item['ruleName'] : null, + 'data' => isset($item['data']) ? $item['data'] : null, + 'createdAt' => isset($item['createdAt']) ? $item['createdAt'] : null, + 'updatedAt' => isset($item['updatedAt']) ? $item['updatedAt'] : null, ]); } @@ -629,7 +629,7 @@ class PhpManager extends BaseManager $this->_assignments[$userId][$name] = new Assignment([ 'userId' => $userId, 'roleName' => $assignment['roleName'], - 'createdAt' => isset($assignment['createdAt']) ? $assignment['createdAt'] : time(), + 'createdAt' => isset($assignment['createdAt']) ? $assignment['createdAt'] : null, ]); } } @@ -651,12 +651,12 @@ class PhpManager extends BaseManager $items = []; foreach ($this->_items as $name => $item) { /** @var Item $item */ - $items[$name] = [ + $items[$name] = array_filter([ 'type' => $item->type, 'description' => $item->description, 'ruleName' => $item->ruleName, 'data' => $item->data, - ]; + ]); if (isset($this->_children[$name])) { foreach ($this->_children[$name] as $child) { /** @var Item $child */