From 9df5c915a8440e1f8176365fea4f93a2f832e3cb Mon Sep 17 00:00:00 2001 From: conory Date: Mon, 10 Apr 2017 11:30:42 +0900 Subject: [PATCH] =?UTF-8?q?Creating=20default=20object=20from=20empty=20va?= =?UTF-8?q?lue=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/module/module.model.php | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/modules/module/module.model.php b/modules/module/module.model.php index d87b528db..0c0943d2e 100644 --- a/modules/module/module.model.php +++ b/modules/module/module.model.php @@ -837,22 +837,29 @@ class moduleModel extends module { if(is_array($permissions)) $permission_list = $permissions; else $permission_list[] = $permissions; - + $buff[] = '$info->permission = new stdClass;'; - $info->permission = new stdClass(); + $buff[] = '$info->permission_check = new stdClass;'; + + $info->permission = new stdClass; + $info->permission_check = new stdClass; foreach($permission_list as $permission) { $action = $permission->attrs->action; $target = $permission->attrs->target; - $info->permission->{$action} = $target; - $info->permission_check->{$action}->key = $permission->attrs->check_var ?: ''; - $info->permission_check->{$action}->type = $permission->attrs->check_type ?: ''; + $info->permission->$action = $target; $buff[] = sprintf('$info->permission->%s = \'%s\';', $action, $target); - $buff[] = sprintf('$info->permission_check->%s->key = \'%s\';', $action, $info->permission_check->{$action}->key); - $buff[] = sprintf('$info->permission_check->%s->type = \'%s\';', $action, $info->permission_check->{$action}->type); + + $info->permission_check->$action = new stdClass; + $info->permission_check->$action->key = $permission->attrs->check_var ?: ''; + $info->permission_check->$action->type = $permission->attrs->check_type ?: ''; + + $buff[] = sprintf('$info->permission_check->%s = new stdClass;', $action); + $buff[] = sprintf('$info->permission_check->%s->key = \'%s\';', $action, $info->permission_check->$action->key); + $buff[] = sprintf('$info->permission_check->%s->type = \'%s\';', $action, $info->permission_check->$action->type); } } // for admin menus @@ -890,7 +897,10 @@ class moduleModel extends module if(!isset($info->permission)) { $buff[] = '$info->permission = new stdClass;'; - $info->permission = new stdClass(); + $buff[] = '$info->permission_check = new stdClass;'; + + $info->permission = new stdClass; + $info->permission_check = new stdClass; } $buff[] = '$info->action = new stdClass;'; @@ -904,10 +914,14 @@ class moduleModel extends module if($action->attrs->permission) { $info->permission->$name = $action->attrs->permission; + + $buff[] = sprintf('$info->permission->%s = \'%s\';', $name, $info->permission->$name); + + $info->permission_check->$name = new stdClass; $info->permission_check->$name->key = $action->attrs->check_var ?: ''; $info->permission_check->$name->type = $action->attrs->check_type ?: ''; - $buff[] = sprintf('$info->permission->%s = \'%s\';', $name, $info->permission->$name); + $buff[] = sprintf('$info->permission_check->%s = new stdClass;', $name); $buff[] = sprintf('$info->permission_check->%s->key = \'%s\';', $name, $info->permission_check->$name->key); $buff[] = sprintf('$info->permission_check->%s->type = \'%s\';', $name, $info->permission_check->$name->type); }