function execute(&$controller, &$xoopsUser) { if (!$this->_isEditable()) { return LEGACY_FRAME_VIEW_ERROR; } $ret = parent::execute($controller, $xoopsUser); if ($ret == LEGACY_FRAME_VIEW_SUCCESS) { // // Reset block_module_link. // $handler =& xoops_getmodulehandler('block_module_link', 'legacy'); $handler->deleteAll(new Criteria('block_id', $this->mObject->get('bid'))); foreach ($this->mObject->mBmodule as $bmodule) { // // If object is new, $bmodule isn't set bid yet. // $bmodule->set('block_id', $this->mObject->get('bid')); $handler->insert($bmodule); } // // Insert group permissions. // $currentGroupid = array(); foreach ($this->mObject->mGroup as $group) { $currentGroupid[] = $group->get('groupid'); } $permHandler =& xoops_gethandler('groupperm'); $criteria = new CriteriaCompo(); $criteria->add(new Criteria('gperm_modid', 1)); $criteria->add(new Criteria('gperm_itemid', $this->mObject->get('bid'))); $criteria->add(new Criteria('gperm_name', 'block_read')); $gpermArr =& $permHandler->getObjects($criteria); foreach ($gpermArr as $gperm) { if (!in_array($gperm->get('gperm_groupid'), $currentGroupid)) { $permHandler->delete($gperm); } } foreach ($this->mObject->mGroup as $group) { $insertFlag = true; foreach ($gpermArr as $gperm) { if ($gperm->get('gperm_groupid') == $group->get('groupid')) { $insertFlag = false; } } if ($insertFlag) { $gperm =& $permHandler->create(); $gperm->set('gperm_modid', 1); $gperm->set('gperm_groupid', $group->get('groupid')); $gperm->set('gperm_itemid', $this->mObject->get('bid')); $gperm->set('gperm_name', 'block_read'); $permHandler->insert($gperm); } } } return $ret; }
function execute(&$controller, &$xoopsUser) { if (!$this->_isEditable()) { return LEGACY_FRAME_VIEW_ERROR; } $ret = parent::execute($controller, $xoopsUser); if ($ret == LEGACY_FRAME_VIEW_SUCCESS) { $handler =& xoops_gethandler('group'); $permHandler =& xoops_gethandler('groupperm'); foreach ($this->mActionForm->get('read_groupid') as $readgroupid) { $this->mReadGroups[] =& $handler->get($readgroupid); } foreach ($this->mActionForm->get('admin_groupid') as $admingroupid) { $this->mAdminGroups[] =& $handler->get($admingroupid); } // // Insert group permissions. // $currentReadGroupid = array(); foreach ($this->mReadGroups as $readgroup) { $currentReadGroupid[] = $readgroup->get('groupid'); } $currentAdminGroupid = array(); foreach ($this->mAdminGroups as $admingroup) { $currentAdminGroupid[] = $admingroup->get('groupid'); } //readperm $criteria = new CriteriaCompo(); $criteria->add(new Criteria('gperm_modid', 1)); $criteria->add(new Criteria('gperm_itemid', $this->mObject->get('mid'))); $criteria->add(new Criteria('gperm_name', 'module_read')); $gpermArr =& $permHandler->getObjects($criteria); foreach ($gpermArr as $gperm) { if (!in_array($gperm->get('gperm_groupid'), $currentReadGroupid)) { if (!$permHandler->delete($gperm)) { return LEGACY_FRAME_VIEW_ERROR; } } } foreach ($this->mReadGroups as $readgroup) { $insertFlag = true; foreach ($gpermArr as $gperm) { if ($gperm->get('gperm_groupid') == $readgroup->get('groupid')) { $insertFlag = false; } } if ($insertFlag) { $gperm =& $permHandler->create(); $gperm->set('gperm_modid', 1); $gperm->set('gperm_groupid', $readgroup->get('groupid')); $gperm->set('gperm_itemid', $this->mObject->get('mid')); $gperm->set('gperm_name', 'module_read'); if (!$permHandler->insert($gperm)) { return LEGACY_FRAME_VIEW_ERROR; } } } //admin perm $criteria = new CriteriaCompo(); $criteria->add(new Criteria('gperm_modid', 1)); $criteria->add(new Criteria('gperm_itemid', $this->mObject->get('mid'))); $criteria->add(new Criteria('gperm_name', 'module_admin')); $gpermArr =& $permHandler->getObjects($criteria); foreach ($gpermArr as $gperm) { if (!in_array($gperm->get('gperm_groupid'), $currentAdminGroupid)) { if (!$permHandler->delete($gperm)) { return LEGACY_FRAME_VIEW_ERROR; } } } foreach ($this->mAdminGroups as $admingroup) { $insertFlag = true; foreach ($gpermArr as $gperm) { if ($gperm->get('gperm_groupid') == $admingroup->get('groupid')) { $insertFlag = false; } } if ($insertFlag) { $gperm =& $permHandler->create(); $gperm->set('gperm_modid', 1); $gperm->set('gperm_groupid', $admingroup->get('groupid')); $gperm->set('gperm_itemid', $this->mObject->get('mid')); $gperm->set('gperm_name', 'module_admin'); if (!$permHandler->insert($gperm)) { return LEGACY_FRAME_VIEW_ERROR; } } } //module_cache $confighandler =& xoops_gethandler('config'); $criteria = new CriteriaCompo(); $criteria->add(new Criteria('conf_name', 'module_cache')); $criteria->add(new Criteria('conf_catid', XOOPS_CONF)); $configObjects =& $confighandler->getConfigs($criteria); if (is_object($configObjects[0])) { $oldvalue = $configObjects[0]->get('conf_value'); $t_arr = !empty($oldvalue) ? unserialize($oldvalue) : array(); if (is_array($t_arr)) { $t_arr[$this->mObject->get('mid')] = $this->mActionForm->get('module_cache'); $configObjects[0]->set('conf_value', serialize($t_arr)); if (!$confighandler->insertConfig($configObjects[0])) { return LEGACY_FRAME_VIEW_ERROR; } } else { return LEGACY_FRAME_VIEW_ERROR; } } else { return LEGACY_FRAME_VIEW_ERROR; } } return $ret; }