/**
  * 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;
 }