From ff608c540ace7dc72f93077ea4de70c6b6cea254 Mon Sep 17 00:00:00 2001 From: ovclas Date: Tue, 11 Sep 2012 07:09:42 +0000 Subject: [PATCH] issue 2363 create get grant method by xml api git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@11206 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/member/conf/module.xml | 2 + modules/member/member.model.php | 8 ++++ modules/module/conf/module.xml | 2 + modules/module/module.admin.model.php | 63 +++++++++++++++++++++++++++ 4 files changed, 75 insertions(+) diff --git a/modules/member/conf/module.xml b/modules/member/conf/module.xml index a0dcc3129..3f1612969 100644 --- a/modules/member/conf/module.xml +++ b/modules/member/conf/module.xml @@ -2,6 +2,7 @@ + @@ -36,6 +37,7 @@ + diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 29114a246..7f00a8eec 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -478,6 +478,14 @@ return $GLOBALS['__group_info__'][$site_srl]; } + public function getApiGroups() + { + $siteSrl = Context::get('siteSrl'); + $groupInfo = $this->getGroups($siteSrl); + + $this->add($groupInfo); + } + /** * @brief Get a list of member join forms * diff --git a/modules/module/conf/module.xml b/modules/module/conf/module.xml index 8e7d20a1f..de9a9576d 100644 --- a/modules/module/conf/module.xml +++ b/modules/module/conf/module.xml @@ -3,6 +3,7 @@ + @@ -33,6 +34,7 @@ + diff --git a/modules/module/module.admin.model.php b/modules/module/module.admin.model.php index e3065dc5c..dc3d42c66 100644 --- a/modules/module/module.admin.model.php +++ b/modules/module/module.admin.model.php @@ -153,6 +153,69 @@ return $oTemplate->compile($this->module_path.'tpl', 'module_grants'); } + public function getModuleAdminGrant() + { + $targetModule = Context::get('target_module'); + $moduleSrl = Context::get('module_srl'); + if(!$targetModule || !$moduleSrl) + { + return new Object(-1, 'msg_invalid_request'); + } + + $oModuleModel = &getModel('module'); + $xmlInfo = $oModuleModel->getModuleActionXml($targetModule); + + // Grant virtual permission for access and manager + $grantList->access->title = Context::getLang('grant_access'); + $grantList->access->default = 'guest'; + if(count($xmlInfo->grant)) + { + foreach($xmlInfo->grant as $key => $val) + { + if(!$val->default) $val->default = 'guest'; + if($val->default == 'root') $val->default = 'manager'; + $grantList->{$key} = $val; + } + } + $grantList->manager->title = Context::getLang('grant_manager'); + $grantList->manager->default = 'manager'; + + // Get a permission group granted to the current module + $defaultGrant = new stdClass(); + $args->module_srl = $moduleSrl; + $output = executeQueryArray('module.getModuleGrants', $args); + if($output->data) + { + foreach($output->data as $val) + { + if($val->group_srl == 0) $defaultGrant->{$val->name} = 'all'; + else if($val->group_srl == -1) $defaultGrant->{$val->name} = 'member'; + else if($val->group_srl == -2) $defaultGrant->{$val->name} = 'site'; + else { + $selectedGroup->{$val->name}[] = $val->group_srl; + $defaultGrant->{$val->name} = 'group'; + } + } + } + + if(is_object($grantList)) + { + foreach($grantList AS $key=>$value) + { + if(isset($defaultGrant->{$key})) + { + $grantList->{$key}->grant = $defaultGrant->{$key}; + } + if(isset($selectedGroup->{$key})) + { + $grantList->{$key}->group = $selectedGroup->{$key}; + } + } + } + + $this->add('grantList', $grantList); + } + /** * @brief Common:: skin setting page for the module **/