protected function _getReadDatabase() { if ($this->_factory == NULL) { $this->_factory = new EngineBlock_Database_ConnectionFactory(); } return $this->_factory->create(EngineBlock_Database_ConnectionFactory::MODE_READ); }
protected function _getPersistentNameId($originalCollabPersonId, $spEntityId) { $factory = new EngineBlock_Database_ConnectionFactory(); $db = $factory->create(EngineBlock_Database_ConnectionFactory::MODE_WRITE); $serviceProviderUuid = $this->_getServiceProviderUuid($spEntityId, $db); $userUuid = $this->_getUserUuid($originalCollabPersonId); $statement = $db->prepare("SELECT persistent_id FROM saml_persistent_id WHERE service_provider_uuid = ? AND user_uuid = ?"); $statement->execute(array($serviceProviderUuid, $userUuid)); $rows = $statement->fetchAll(); if (empty($rows)) { $persistentId = sha1(self::PERSISTENT_NAMEID_SALT . $userUuid . $serviceProviderUuid); $statement = $db->prepare("INSERT INTO saml_persistent_id (persistent_id, service_provider_uuid, user_uuid) VALUES (?,?,?)"); $result = $statement->execute(array($persistentId, $serviceProviderUuid, $userUuid)); if (!$result) { throw new EngineBlock_Exception('Unable to store new persistent id for SP UUID: ' . $serviceProviderUuid . ' and user uuid: ' . $userUuid . ' error info: ' . var_export($statement->errorInfo(), true)); } return $persistentId; } else { if (count($rows) > 1) { throw new EngineBlock_Exception('Multiple persistent IDs found? For: SPUUID: ' . $serviceProviderUuid . ' and user UUID: ' . $userUuid); } else { return $rows[0]['persistent_id']; } } }
/** * Creates db connection * * @todo this was copied from EngineBlock_VirtualOrganization, this should be reused somehow instead of copied * @return PDO $this->_db */ protected function _getDbConnection() { if (isset($this->_db)) { return $this->_db; } $factory = new EngineBlock_Database_ConnectionFactory(); $this->_db = $factory->create(EngineBlock_Database_ConnectionFactory::MODE_READ); return $this->_db; }
public static function createFromConfigs(Zend_Config $config, $userId) { $databaseFactory = new EngineBlock_Database_ConnectionFactory(); $databaseAdapter = $databaseFactory->create(EngineBlock_Database_ConnectionFactory::MODE_READ); $accessTokenHelper = new EngineBlock_Group_Provider_OpenSocial_Oauth_Helper_AccessToken($config->id, $databaseAdapter, $userId); $authConfig = $config->auth->toArray(); if (isset($authConfig['rsaPrivateKey'])) { if (empty($authConfig['rsaPrivateKey'])) { unset($authConfig['rsaPrivateKey']); } else { $authConfig['rsaPrivateKey'] = new Zend_Crypt_Rsa_Key_Private($authConfig['rsaPrivateKey']); } } if (isset($authConfig['rsaPublicKey'])) { if (empty($authConfig['rsaPublicKey'])) { unset($authConfig['rsaPublicKey']); } else { $authConfig['rsaPublicKey'] = new Zend_Crypt_Rsa_Key_Public($authConfig['rsaPublicKey']); } } $httpClient = new Zend_Oauth_Client($authConfig, $config->url, $config); $accessToken = $accessTokenHelper->loadAccessToken(); if ($accessToken) { $httpClient->setToken($accessToken); } $openSocialRestClient = new OpenSocial_Rest_Client($httpClient); $provider = new self($config->id, $config->name, $openSocialRestClient); $provider->setUserId($userId); $provider->setAccessTokenHelper($accessTokenHelper); $provider->addPrecondition('EngineBlock_Group_Provider_Precondition_OpenSocial_Oauth_AccessTokenExists'); $provider->configurePreconditions($config); $provider->configureGroupFilters($config); $provider->configureGroupMemberFilters($config); $decoratedProvider = $provider->configureDecoratorChain($config); return $decoratedProvider; }
/** * @return PDO */ protected function _getDatabaseConnection() { $factory = new EngineBlock_Database_ConnectionFactory(); return $factory->create(EngineBlock_Database_ConnectionFactory::MODE_READ); }
/** * @return bool|PDO */ protected function _getConsentDatabaseConnection() { // We only use the write connection because consent is 3 queries of which only 1 light select query. return $this->_databaseConnectionFactory->create(EngineBlock_Database_ConnectionFactory::MODE_WRITE); }
/** * @return PDO */ protected function _getDatabaseConnection() { if (!isset($this->_factory)) { $factory = new EngineBlock_Database_ConnectionFactory(); $this->_factory = $factory->create(EngineBlock_Database_ConnectionFactory::MODE_READ); } return $this->_factory; }
protected function _getDb() { static $s_db; if ($s_db) { return $s_db; } $factory = new EngineBlock_Database_ConnectionFactory(); $s_db = $factory->create(EngineBlock_Database_ConnectionFactory::MODE_WRITE); return $s_db; }
/** * Create an Zend_Config of Group Provider(s) from database configuration * * @param $providerId the unique identifier of the Provider (optional) * @return Zend_Config */ public function createFromDatabaseFor($providerId = null) { $factory = new EngineBlock_Database_ConnectionFactory(); $db = $factory->create(EngineBlock_Database_ConnectionFactory::MODE_READ); $sql = 'SELECT * FROM group_provider'; $parameters = array(); if ($providerId) { $sql .= " WHERE identifier = ?"; $parameters[] = $providerId; } $statement = $db->prepare($sql); $statement->execute($parameters); $groupProviderRows = $statement->fetchAll(PDO::FETCH_ASSOC); $groupProviders = array(); foreach ($groupProviderRows as $groupProviderRow) { $groupProvider = array('id' => $groupProviderRow['identifier'], 'name' => $groupProviderRow['name'], 'className' => $groupProviderRow['classname']); // Retrieve options $optionRows = $db->query("SELECT `name`, `value`\n FROM group_provider_option\n WHERE group_provider_id = {$groupProviderRow['id']}")->fetchAll(PDO::FETCH_ASSOC); foreach ($optionRows as $optionRow) { if (!isset($optionRow['value']) || empty($optionRow['value'])) { continue; } $groupProviderOptionPointer =& $groupProvider; $optionNameParts = explode('.', $optionRow['name']); $lastOptionNamePart = null; while ($optionNamePart = array_shift($optionNameParts)) { if (!isset($groupProviderOptionPointer[$optionNamePart]) && !empty($optionNameParts)) { $groupProviderOptionPointer[$optionNamePart] = array(); } $groupProviderOptionPointer =& $groupProviderOptionPointer[$optionNamePart]; } $groupProviderOptionPointer = $optionRow['value']; } // decorators $decoratorAndOptionsRows = $db->query("SELECT gpd.id AS id,\n gpd.classname AS className,\n gpdo.name AS option_name,\n gpdo.value AS option_value\n FROM group_provider_decorator gpd\n LEFT JOIN group_provider_decorator_option gpdo ON gpd.id = gpdo.group_provider_decorator_id\n WHERE gpd.group_provider_id = {$groupProviderRow['id']}"); if (!empty($decoratorAndOptionsRows)) { $groupProvider['decorators'] = array(); foreach ($decoratorAndOptionsRows as $decoratorOptionsRow) { if (!isset($groupProvider['decorators'][$decoratorOptionsRow['id']])) { $groupProvider['decorators'][$decoratorOptionsRow['id']] = array(); } $groupProvider['decorators'][$decoratorOptionsRow['id']]['className'] = $decoratorOptionsRow['className']; if (isset($decoratorOptionsRow['option_name']) && $decoratorOptionsRow['option_name']) { $groupProvider['decorators'][$decoratorOptionsRow['id']][$decoratorOptionsRow['option_name']] = $decoratorOptionsRow['option_value']; } } } // filters $filterAndOptionsRows = $db->query("SELECT gpf.id AS id,\n gpf.type AS type,\n gpf.classname AS className,\n gpfo.name AS option_name,\n gpfo.value AS option_value\n FROM group_provider_filter gpf\n LEFT JOIN group_provider_filter_option gpfo ON gpf.id = gpfo.group_provider_filter_id\n WHERE gpf.group_provider_id = {$groupProviderRow['id']}"); foreach ($filterAndOptionsRows as $filterOptionsRow) { if (!isset($groupProvider[$filterOptionsRow['type'] . 'Filters'])) { $groupProvider[$filterOptionsRow['type'] . 'Filters'] = array(); } $filters =& $groupProvider[$filterOptionsRow['type'] . 'Filters']; if (!isset($filters[$filterOptionsRow['id']])) { $filters[$filterOptionsRow['id']] = array(); } $filters[$filterOptionsRow['id']]['className'] = $filterOptionsRow['className']; if (isset($filterOptionsRow['option_name']) && $filterOptionsRow['option_name']) { $filters[$filterOptionsRow['id']][$filterOptionsRow['option_name']] = $filterOptionsRow['option_value']; } } // preconditions $preconditionAndOptionsRows = $db->query("SELECT gpp.id AS id,\n gpp.classname AS className,\n gppo.name AS option_name,\n gppo.value AS option_value\n FROM group_provider_precondition gpp\n LEFT JOIN group_provider_precondition_option gppo ON gpp.id = gppo.group_provider_precondition_id\n WHERE gpp.group_provider_id = {$groupProviderRow['id']}"); if (!empty($preconditionAndOptionsRows)) { $groupProvider['preconditions'] = array(); foreach ($preconditionAndOptionsRows as $preconditionOptionsRow) { if (!isset($groupProvider['preconditions'][$preconditionOptionsRow['id']])) { $groupProvider['preconditions'][$preconditionOptionsRow['id']] = array(); } $groupProvider['preconditions'][$preconditionOptionsRow['id']]['className'] = $preconditionOptionsRow['className']; if (isset($preconditionOptionsRow['option_name']) && $preconditionOptionsRow['option_name']) { $groupProvider['preconditions'][$preconditionOptionsRow['id']][$preconditionOptionsRow['option_name']] = $preconditionOptionsRow['option_value']; } } } $groupProviders[] = $groupProvider; } return new Zend_Config($groupProviders); }
/** * @return PDO */ protected function _getDatabaseConnection() { $pdo = new EngineBlock_Database_ConnectionFactory(); return $pdo->create(EngineBlock_Database_ConnectionFactory::MODE_WRITE); }
public function __construct($writer) { $this->_writer = $writer; $factory = new EngineBlock_Database_ConnectionFactory(); $this->_database = $factory->create(EngineBlock_Database_ConnectionFactory::MODE_WRITE); }