public static function forgetAllCaches() { RedBeanModelsCache::forgetAll(); RedBeansCache::forgetAll(); PermissionsCache::forgetAll(); RightsCache::forgetAll(); PoliciesCache::forgetAll(); GeneralCache::forgetAll(); BeanModelCache::forgetAll(); Currency::resetCaches(); //php only cache }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); ZurmoDatabaseCompatibilityUtil::createActualPermissionsCacheTable(); ZurmoDatabaseCompatibilityUtil::createNamedSecurableActualPermissionsCacheTable(); ZurmoDatabaseCompatibilityUtil::createActualRightsCacheTable(); ZurmoDatabaseCompatibilityUtil::dropStoredFunctionsAndProcedures(); PermissionsCache::forgetAll(); AllPermissionsOptimizationCache::forgetAll(); RightsCache::forgetAll(); PoliciesCache::forgetAll(); Currency::resetCaches(); //php only cache Permission::resetCaches(); //php only cache self::$activitiesObserver = new ActivitiesObserver(); self::$activitiesObserver->init(); //runs init(); self::$conversationsObserver = new ConversationsObserver(); self::$conversationsObserver->init(); //runs init(); self::$emailMessagesObserver = new EmailMessagesObserver(); self::$emailMessagesObserver->init(); //runs init(); self::$contactLatestActivityDateTimeObserver = new ContactLatestActivityDateTimeObserver(); self::$contactLatestActivityDateTimeObserver->init(); //runs init(); self::$accountLatestActivityDateTimeObserver = new AccountLatestActivityDateTimeObserver(); self::$accountLatestActivityDateTimeObserver->init(); //runs init(); self::$accountContactAffiliationObserver = new AccountContactAffiliationObserver(); self::$accountContactAffiliationObserver->init(); //runs init(); Yii::app()->gameHelper; Yii::app()->gamificationObserver; //runs init(); Yii::app()->gameHelper->resetDeferredPointTypesAndValuesByUserIdToAdd(); Yii::app()->emailHelper->sendEmailThroughTransport = false; Yii::app()->jobQueue->deleteAll(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); ZurmoDatabaseCompatibilityUtil::createActualPermissionsCacheTable(); ZurmoDatabaseCompatibilityUtil::dropStoredFunctionsAndProcedures(); PermissionsCache::forgetAll(); RightsCache::forgetAll(); PoliciesCache::forgetAll(); Currency::resetCaches(); //php only cache $activitiesObserver = new ActivitiesObserver(); $activitiesObserver->init(); //runs init(); $conversationsObserver = new ConversationsObserver(); $conversationsObserver->init(); //runs init(); Yii::app()->gameHelper; Yii::app()->gamificationObserver; //runs init(); Yii::app()->gameHelper->resetDeferredPointTypesAndValuesByUserIdToAdd(); Yii::app()->emailHelper->sendEmailThroughTransport = false; }
protected function clearCaches() { PermissionsCache::forgetAll(); RightsCache::forgetAll(); PoliciesCache::forgetAll(); AllPermissionsOptimizationCache::forgetAll(); }
protected function afterDelete() { PermissionsCache::forgetAll(); RightsCache::forgetAll(); PoliciesCache::forgetAll(); }
protected function forgetPermissionsRightsAndPoliciesCache() { PermissionsCache::forgetAll(); Permission::resetCaches(); RightsCache::forgetAll(); PoliciesCache::forgetAll(); }
/** * @depends testRemovePolicies */ public function testDeleteAllPolicies() { $nerd = User::getByUsername('billy'); $salesStaff = Group::getByName('Sales Staff'); $this->assertEquals(null, $nerd->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); $this->assertEquals(null, $salesStaff->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); $this->assertEquals(null, $nerd->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); $this->assertEquals(null, $salesStaff->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); $nerd->setPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS, 30); $this->assertTrue($nerd->save()); $this->assertEquals(30, $nerd->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); $this->assertEquals(null, $salesStaff->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); $salesStaff->setPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS, 10); $this->assertTrue($salesStaff->save()); $this->assertEquals(30, $nerd->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); $this->assertEquals(10, $salesStaff->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); Policy::removeAllForPermitable($nerd); PoliciesCache::forgetAll(); unset($nerd); unset($salesStaff); RedBeanModel::forgetAll(); $nerd = User::getByUsername('billy'); $salesStaff = Group::getByName('Sales Staff'); $this->assertEquals(null, $nerd->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); $this->assertEquals(10, $salesStaff->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); Policy::deleteAll(); PoliciesCache::forgetAll(); unset($nerd); unset($salesStaff); RedBeanModel::forgetAll(); $nerd = User::getByUsername('billy'); $salesStaff = Group::getByName('Sales Staff'); $this->assertEquals(null, $nerd->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); $this->assertEquals(null, $salesStaff->getActualPolicy('UsersModule', UsersModule::POLICY_PASSWORD_EXPIRY_DAYS)); }
/** * Override to ensure the permissions cache is forgotten since if it is not, other users logged in will not * get the effective changes until the cache is cleared across the application. * (non-PHPdoc) * @see ZurmoBaseController::actionAfterSuccessfulModelSave() */ protected function actionAfterSuccessfulModelSave($model, $modelToStringValue, $redirectUrlParams = null) { PermissionsCache::forgetAll(); RightsCache::forgetAll(); PoliciesCache::forgetAll(); parent::actionAfterSuccessfulModelSave($model, $modelToStringValue, $redirectUrlParams); }
/** * @param string $moduleName * @param string $policyName * @return mixed|null|string */ public function getExplicitActualPolicy($moduleName, $policyName) { assert('is_string($moduleName)'); assert('is_string($policyName)'); assert('$moduleName != ""'); assert('$policyName != ""'); if (!SECURITY_OPTIMIZED) { // The slow way will remain here as documentation // for what the optimized way is doing. foreach ($this->policies as $policy) { if ($policy->moduleName == $moduleName && $policy->name == $policyName) { return $policy->value; } } return null; } else { $permitableId = $this->getClassId('Permitable'); try { // not using $default because computing default value would involve extra cpu cycles each time. return PoliciesCache::getEntry($permitableId . $moduleName . $policyName . 'ExplicitActualPolicy'); } catch (NotFoundException $e) { $explictActualPolicy = ZurmoDatabaseCompatibilityUtil::callFunction("get_permitable_explicit_actual_policy(\n {$permitableId}, '{$moduleName}', '{$policyName}')"); } PoliciesCache::cacheEntry($permitableId . $moduleName . $policyName . 'ExplicitActualPolicy', $explictActualPolicy); return $explictActualPolicy; } }