/** * Set a persistent config value for current user against portletId and keyName. * @param $portletId integer Id of the portlet or string representation of the unique id of the portlet to set value against * @param $keyName string Name of the key that should be set * @param $value string|integer|boolean Value that should be assigned to keyName config */ public static function setForCurrentUserByPortletIdAndKey($portletId, $keyName, $value) { assert('is_int($portletId) || is_string($portletId)'); assert('is_string($keyName)'); $moduleName = static::getModuleName(); $keyName = static::resolveKeyNameByPortletId($portletId, $keyName); ZurmoConfigurationUtil::setForCurrentUserByModuleName($moduleName, $keyName, $value); Yii::app()->user->setState($keyName, $value); }
public function testGetAndSetByCurrentUserByModuleName() { Yii::app()->user->userModel = User::getByUsername('super'); $this->assertNull(ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'aKey')); ZurmoConfigurationUtil::setForCurrentUserByModuleName('ZurmoModule', 'aKey', 'aValue'); Yii::app()->user->userModel = User::getByUsername('billy'); $this->assertNull(ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'aKey')); ZurmoConfigurationUtil::setForCurrentUserByModuleName('ZurmoModule', 'aKey', 'bValue'); Yii::app()->user->userModel = User::getByUsername('sally'); $this->assertNull(ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'aKey')); ZurmoConfigurationUtil::setForCurrentUserByModuleName('ZurmoModule', 'aKey', 'cValue'); //now retrieve again. Yii::app()->user->userModel = User::getByUsername('super'); $this->assertEquals('aValue', ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'aKey')); Yii::app()->user->userModel = User::getByUsername('billy'); $this->assertEquals('bValue', ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'aKey')); Yii::app()->user->userModel = User::getByUsername('sally'); $this->assertEquals('cValue', ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'aKey')); //Test retrieving a generic value that is set globally on ZurmoModule. The value returned should be the //same for all users. $metadata = ZurmoModule::getMetadata(); $this->assertTrue(!isset($metadata['global']['bKey'])); $metadata['global']['bKey'] = 'GlobalValue'; ZurmoModule::setMetadata($metadata); Yii::app()->user->userModel = User::getByUsername('super'); $this->assertEquals('GlobalValue', ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'bKey')); Yii::app()->user->userModel = User::getByUsername('billy'); $this->assertEquals('GlobalValue', ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'bKey')); Yii::app()->user->userModel = User::getByUsername('sally'); $this->assertEquals('GlobalValue', ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'bKey')); //Now change the bKey value, just for billy and retrieve again for all users. Only billy's bKey value //should be different. ZurmoConfigurationUtil::setByUserAndModuleName(User::getByUsername('billy'), 'ZurmoModule', 'bKey', 'BillyBKey'); Yii::app()->user->userModel = User::getByUsername('super'); $this->assertEquals('GlobalValue', ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'bKey')); Yii::app()->user->userModel = User::getByUsername('billy'); $this->assertEquals('BillyBKey', ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'bKey')); Yii::app()->user->userModel = User::getByUsername('sally'); $this->assertEquals('GlobalValue', ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'bKey')); }
public function confirmCurrentUsersTimeZone() { $keyName = 'timeZoneConfirmed'; ZurmoConfigurationUtil::setForCurrentUserByModuleName('UsersModule', $keyName, true); }
/** * @param $moduleName * @param RedBeanModel $model */ public static function deleteModelFromRecentlyViewed($moduleName, RedBeanModel $model) { if (!isset($model) || !isset($moduleName)) { return; } $newItem = array($moduleName, $model->id, strval($model)); $recentlyViewed = unserialize(ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', 'recentlyViewed')); if (!is_array($recentlyViewed)) { return; } if (in_array($newItem, $recentlyViewed)) { $key = array_search($newItem, $recentlyViewed); unset($recentlyViewed[$key]); array_keys($recentlyViewed); } ZurmoConfigurationUtil::setForCurrentUserByModuleName('ZurmoModule', 'recentlyViewed', serialize($recentlyViewed)); }
public function testDeleteModelFromRecentlyViewed() { Yii::app()->user->userModel = User::getByUsername('super'); ZurmoConfigurationUtil::setForCurrentUserByModuleName('ZurmoModule', 'recentlyViewed', null); $account1 = new Account(); $account1->name = 'Dooble1'; $this->assertTrue($account1->save()); $account2 = new Account(); $account2->name = 'Dooble2'; $this->assertTrue($account2->save()); $account3 = new Account(); $account3->name = 'Dooble3'; $account3->owner = User::getByUsername('jimmy'); $this->assertTrue($account3->save()); //Now create some audit entries for the Item Viewed event. AuditEvent::logAuditEvent('ZurmoModule', ZurmoModule::AUDIT_EVENT_ITEM_VIEWED, array(strval($account1), 'AccountsModule'), $account1); AuditEvent::logAuditEvent('ZurmoModule', ZurmoModule::AUDIT_EVENT_ITEM_VIEWED, array(strval($account2), 'AccountsModule'), $account2); AuditEvent::logAuditEvent('ZurmoModule', ZurmoModule::AUDIT_EVENT_ITEM_VIEWED, array(strval($account1), 'AccountsModule'), $account3); $content = AuditEventsRecentlyViewedUtil::getRecentlyViewedAjaxContentByUser(Yii::app()->user->userModel, 5); $this->assertContains('Dooble1', $content); $this->assertContains('Dooble2', $content); $this->assertContains('Dooble3', $content); AuditEvent::logAuditEvent('ZurmoModule', ZurmoModule::AUDIT_EVENT_ITEM_DELETED, strval($account1), $account1); $content = AuditEventsRecentlyViewedUtil::getRecentlyViewedAjaxContentByUser(Yii::app()->user->userModel, 5); $this->assertNotContains('Dooble1', $content); $this->assertContains('Dooble2', $content); $this->assertContains('Dooble3', $content); }
/** * Set the pagination value for the current user by pagination type. * Also sets value as active state value by key. * @param $type - pagination type * @param $moduleName - optional. Module class name. */ public function setForCurrentUserByType($type, $value, $moduleName = null) { assert('in_array($type, static::getAvailablePageSizeNames()) == true'); assert('is_int($value) && $value > 0'); assert('$moduleName == null || is_string($moduleName)'); $keyName = $this->getKeyByTypeAndModuleName($type); ZurmoConfigurationUtil::setForCurrentUserByModuleName('ZurmoModule', $keyName, $value); Yii::app()->user->setState($keyName, $value); }
public function actionToggleDismissIntroView($moduleName, $panelId) { $value = (bool) ZurmoConfigurationUtil::getForCurrentUserByModuleName($moduleName, $panelId); ZurmoConfigurationUtil::setForCurrentUserByModuleName($moduleName, $panelId, !$value); }
public function toggleCollapseMenu() { $value = ZurmoConfigurationUtil::getForCurrentUserByModuleName('ZurmoModule', static::TOGGLE_COLLAPSE_KEY); ZurmoConfigurationUtil::setForCurrentUserByModuleName('ZurmoModule', static::TOGGLE_COLLAPSE_KEY, !$value); }