/** * @param SecurableItem $securableItem */ public static function forgetSecurableItemForChange(SecurableItem $securableItem) { if ($securableItem->getClassId('SecurableItem') == 0) { return; } $securableItemModelIdentifer = $securableItem->getClassId('SecurableItem'); if (static::supportsAndAllowsPhpCaching()) { static::$securableItemToPermitableToChangePermissions[$securableItemModelIdentifer] = array(); } if (static::supportsAndAllowsMemcache()) { $prefix = static::getCachePrefix($securableItemModelIdentifer) . static::CHANGE; Yii::app()->cache->delete($prefix . $securableItemModelIdentifer); } }
public static function forgetSecurableItem(SecurableItem $securableItem, $forgetDbLevelCache = true) { if ($securableItem->getClassId('SecurableItem') == 0) { return; } $securableItemModelIdentifer = $securableItem->getModelIdentifier(); if (PHP_CACHING_ON) { self::$securableItemToPermitableToCombinedPermissions[$securableItemModelIdentifer] = array(); } if (MEMCACHE_ON && Yii::app()->cache !== null) { $prefix = self::getCachePrefix($securableItemModelIdentifer, self::$cacheType); Yii::app()->cache->delete($prefix . $securableItemModelIdentifer); } if (SECURITY_OPTIMIZED && DB_CACHING_ON && $forgetDbLevelCache) { $securableItemId = $securableItem->getClassID('SecurableItem'); ZurmoDatabaseCompatibilityUtil::callProcedureWithoutOuts("clear_cache_securableitem_actual_permissions({$securableItemId})"); } }
public static function getAccountMungeRows(SecurableItem $securableItem = null) { if ($securableItem === null) { $rows = ZurmoRedBean::getAll('select name, munge_id, count from account_read, ownedsecurableitem, account where account_read.securableitem_id = ownedsecurableitem.securableitem_id and ownedsecurableitem.id = account.ownedsecurableitem_id order by name, munge_id, account_read.securableitem_id, count'); } else { $securableItemId = $securableItem->getClassId('SecurableItem'); $rows = ZurmoRedBean::getAll("select munge_id, count\n from account_read\n where securableitem_id = {$securableItemId}\n order by munge_id, count"); } $rowsWithValues = array(); foreach ($rows as $row) { $row = array_values($row); array_walk($row, array('self', 'stripFullStops')); $rowsWithValues[] = $row; } return $rowsWithValues; }
public static function forgetSecurableItem(SecurableItem $securableItem, $forgetDbLevelCache = true) { if ($securableItem->getClassId('SecurableItem') == 0) { return; } $securableItemModelIdentifer = $securableItem->getModelIdentifier(); if (static::supportsAndAllowsPhpCaching()) { static::$securableItemToPermitableToCombinedPermissions[$securableItemModelIdentifer] = array(); } if (static::supportsAndAllowsMemcache()) { $prefix = static::getCachePrefix($securableItemModelIdentifer); Yii::app()->cache->delete($prefix . $securableItemModelIdentifer); } if (SECURITY_OPTIMIZED && static::supportsAndAllowsDatabaseCaching() && $forgetDbLevelCache) { $securableItemId = $securableItem->getClassID('SecurableItem'); ZurmoDatabaseCompatibilityUtil::callProcedureWithoutOuts("clear_cache_securableitem_actual_permissions({$securableItemId})"); } }