/** * Sets default enabled/disabled on User or/and Space Modules * * @throws CHttpException */ public function actionSetAsDefault() { $moduleId = Yii::app()->request->getQuery('moduleId'); $module = Yii::app()->moduleManager->getModule($moduleId); if ($module == null) { throw new CHttpException(500, Yii::t('AdminModule.controllers_ModuleController', 'Could not find requested module!')); } $model = new ModuleSetAsDefaultForm(); $spaceDefaultModule = null; if ($module->isSpaceModule()) { $spaceDefaultModule = SpaceApplicationModule::model()->findByAttributes(array('space_id' => 0, 'module_id' => $moduleId)); if ($spaceDefaultModule === null) { $spaceDefaultModule = new SpaceApplicationModule(); $spaceDefaultModule->module_id = $moduleId; $spaceDefaultModule->space_id = 0; $spaceDefaultModule->state = SpaceApplicationModule::STATE_DISABLED; } $model->spaceDefaultState = $spaceDefaultModule->state; } $userDefaultModule = null; if ($module->isUserModule()) { $userDefaultModule = UserApplicationModule::model()->findByAttributes(array('user_id' => 0, 'module_id' => $moduleId)); if ($userDefaultModule === null) { $userDefaultModule = new UserApplicationModule(); $userDefaultModule->module_id = $moduleId; $userDefaultModule->user_id = 0; $userDefaultModule->state = UserApplicationModule::STATE_DISABLED; } $model->userDefaultState = $userDefaultModule->state; } if (isset($_POST['ModuleSetAsDefaultForm'])) { $_POST['ModuleSetAsDefaultForm'] = Yii::app()->input->stripClean($_POST['ModuleSetAsDefaultForm']); $model->attributes = $_POST['ModuleSetAsDefaultForm']; if ($model->validate()) { if ($module->isSpaceModule()) { $spaceDefaultModule->state = $model->spaceDefaultState; $spaceDefaultModule->save(); } if ($module->isUserModule()) { $userDefaultModule->state = $model->userDefaultState; $userDefaultModule->save(); } // close modal $this->renderModalClose(); } } $this->renderPartial('setAsDefault', array('module' => $module, 'model' => $model), false, true); }
/** * Disables a Module */ public function disableModule($moduleId) { // Not enabled globally if (!array_key_exists($moduleId, $this->getAvailableModules())) { return false; } // Already enabled module if (!$this->isModuleEnabled($moduleId)) { Yii::log("User->disableModule(" . $moduleId . ") module is not enabled"); return false; } // New Way: Handle it directly in module class $module = Yii::app()->moduleManager->getModule($moduleId); $module->disableUserModule($this->getOwner()); $userModule = UserApplicationModule::model()->findByAttributes(array('user_id' => $this->getOwner()->id, 'module_id' => $moduleId)); if ($userModule == null) { $userModule = new UserApplicationModule(); $userModule->user_id = $this->getOwner()->id; $userModule->module_id = $moduleId; } $userModule->state = UserApplicationModule::STATE_DISABLED; $userModule->save(); return true; }