function getByNameAndPartnerId($roleName, $partnerId) { $c = new Criteria(); $c->addAnd(UserRolePeer::PARTNER_ID, $partnerId, Criteria::EQUAL); $c->addAnd(UserRolePeer::NAME, $roleName, Criteria::EQUAL); UserRolePeer::setUseCriteriaFilter(false); $userRole = UserRolePeer::doSelectOne($c); UserRolePeer::setUseCriteriaFilter(true); return $userRole; }
/** * Cleans up the environment after running a test. */ protected function tearDown() { UserRolePeer::clearInstancePool(); PermissionPeer::clearInstancePool(); PermissionItemPeer::clearInstancePool(); kuserPeer::clearInstancePool(); PartnerPeer::clearInstancePool(); $this->client = null; UserRolePeer::setUseCriteriaFilter(false); foreach ($this->addedRoleIds as $id) { try { $obj = UserRolePeer::retrieveByPK($id); if ($obj) { $obj->delete(); } } catch (PropelException $e) { } } UserRolePeer::setUseCriteriaFilter(true); $this->addedRoleIds = array(); parent::tearDown(); }
public static function copyUserRoles(Partner $fromPartner, Partner $toPartner) { KalturaLog::log('Copying user roles from partner [' . $fromPartner->getId() . '] to partner [' . $toPartner->getId() . ']'); UserRolePeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(UserRolePeer::PARTNER_ID, $fromPartner->getId(), Criteria::EQUAL); $c->addDescendingOrderByColumn(UserRolePeer::CREATED_AT); $roles = UserRolePeer::doSelect($c); UserRolePeer::setUseCriteriaFilter(true); foreach ($roles as $role) { $newRole = $role->copyToPartner($toPartner->getId()); $newRole->save(); } }
/** * Will return a UserRole object with the given $roleName and given $partnerId (or partner 0) * @param string $roleName * @param int $partnerId * @return UserRole */ public static function getByNameAndPartnerId($roleName, $partnerId) { $c = new Criteria(); $c->addAnd(UserRolePeer::PARTNER_ID, array($partnerId, PartnerPeer::GLOBAL_PARTNER), Criteria::IN); $c->addAnd(UserRolePeer::NAME, $roleName, Criteria::EQUAL); $c->addAnd(UserRolePeer::STATUS, UserRoleStatus::DELETED, Criteria::NOT_EQUAL); UserRolePeer::setUseCriteriaFilter(false); $userRole = UserRolePeer::doSelectOne($c); UserRolePeer::setUseCriteriaFilter(true); return $userRole; }
function getNewRole($oldRoleName, $userRoles) { if (!$oldRoleName) { $oldRoleName = 'guest'; } if (!isset($userRoles[$oldRoleName])) { KalturaLog::alert('New role name was not found for old role name [' . $oldRoleName . ']'); return null; } $c = new Criteria(); $c->addAnd(UserRolePeer::PARTNER_ID, ADMIN_CONSOLE_PARTNER_ID, Criteria::EQUAL); $c->addAnd(UserRolePeer::ID, $userRoles[$oldRoleName]->getId(), Criteria::EQUAL); $c->addAnd(UserRolePeer::TAGS, '%admin_console%', Criteria::LIKE); UserRolePeer::clearInstancePool(); UserRolePeer::setUseCriteriaFilter(false); $newRole = UserRolePeer::doSelectOne($c); UserRolePeer::setUseCriteriaFilter(true); if (!$newRole) { KalturaLog::alert('Role with id [' . $userRoles[$oldRoleName]->getId() . '] was not found in DB!'); return null; } return $newRole; }
private static function getPermissions($roleId) { $map = self::initEmptyMap(); // get cache dirty time $roleCacheDirtyAt = 0; if (self::$operatingPartner) { $roleCacheDirtyAt = self::$operatingPartner->getRoleCacheDirtyAt(); } // get role from cache $roleCacheKey = self::getRoleIdKey($roleId, self::$operatingPartnerId); $cacheRole = self::getFromCache($roleCacheKey, $roleCacheDirtyAt); // compare updatedAt between partner dirty flag and cache if ($cacheRole) { return $cacheRole; // initialization from cache finished } // cache is not updated - delete stored value and re-init from DB $dbRole = null; if (!is_null($roleId)) { UserRolePeer::setUseCriteriaFilter(false); $dbRole = UserRolePeer::retrieveByPK($roleId); UserRolePeer::setUseCriteriaFilter(true); if (!$dbRole) { KalturaLog::alert('User role ID [' . $roleId . '] set for user ID [' . self::$ksUserId . '] of partner [' . self::$operatingPartnerId . '] was not found in the DB'); throw new kPermissionException('User role ID [' . $roleId . '] set for user ID [' . self::$ksUserId . '] of partner [' . self::$operatingPartnerId . '] was not found in the DB', kPermissionException::ROLE_NOT_FOUND); } } $map = self::getPermissionsFromDb($dbRole); // update cache $cacheRole = array('updatedAt' => time(), 'mapHash' => md5(serialize($map))); self::storeInCache($roleCacheKey, $cacheRole, $map); return $map; }
/** * Code to be run after inserting to database * @param PropelPDO $con */ public function postInsert(PropelPDO $con = null) { UserRolePeer::setUseCriteriaFilter(false); $this->reload(); UserRolePeer::setUseCriteriaFilter(true); kEventsManager::raiseEvent(new kObjectCreatedEvent($this)); if ($this->copiedFrom) { kEventsManager::raiseEvent(new kObjectCopiedEvent($this->copiedFrom, $this)); } }
/** * Validate the amount of core and plugin objects found on the template partner. * @param Partner $templatePartner */ private function validateTemplatePartner(Partner $templatePartner) { //access control profiles $c = new Criteria(); $c->add(accessControlPeer::PARTNER_ID, $templatePartner->getId()); $count = accessControlPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_ac_profiles')) { throw new kCoreException("Template partner's number of [accessControlProfiles] objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } //categories categoryPeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(categoryPeer::PARTNER_ID, $templatePartner->getId()); $c->addAnd(categoryPeer::STATUS, CategoryStatus::ACTIVE); $count = categoryPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_categories')) { throw new kCoreException("Template partner's number of [category] objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } categoryPeer::setUseCriteriaFilter(true); //conversion profiles $c = new Criteria(); $c->add(conversionProfile2Peer::PARTNER_ID, $templatePartner->getId()); $count = conversionProfile2Peer::doCount($c); if ($count > kConf::get('copy_partner_limit_conversion_profiles')) { throw new kCoreException("Template partner's number of [conversionProfile] objects exceeds allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } //entries entryPeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(entryPeer::PARTNER_ID, $templatePartner->getId()); $c->addAnd(entryPeer::TYPE, entryType::MEDIA_CLIP); $c->addAnd(entryPeer::STATUS, entryStatus::READY); $count = entryPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_entries')) { throw new kCoreException("Template partner's number of MEDIA_CLIP objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } entryPeer::setUseCriteriaFilter(true); //playlists entryPeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(entryPeer::PARTNER_ID, $templatePartner->getId()); $c->addAnd(entryPeer::TYPE, entryType::PLAYLIST); $c->addAnd(entryPeer::STATUS, entryStatus::READY); $count = entryPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_playlists')) { throw new kCoreException("Template partner's number of PLAYLIST objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } entryPeer::setUseCriteriaFilter(true); //flavor params $c = new Criteria(); $c->add(assetParamsPeer::PARTNER_ID, $templatePartner->getId()); $count = assetParamsPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_flavor_params')) { throw new kCoreException("Template partner's number of [flavorParams] objects exceeds allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } //uiconfs uiConfPeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(uiConfPeer::PARTNER_ID, $templatePartner->getId()); $c->addAnd(uiConfPeer::OBJ_TYPE, array(uiConf::UI_CONF_TYPE_KDP3, uiConf::UI_CONF_TYPE_WIDGET), Criteria::IN); $c->addAnd(uiConfPeer::STATUS, uiConf::UI_CONF_STATUS_READY); $count = uiConfPeer::doCount($c); if ($count > kConf::get('copy_partner_limit_ui_confs')) { throw new kCoreException("Template partner's number of [uiconf] objects exceeds allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } uiConfPeer::setUseCriteriaFilter(true); //user roles UserRolePeer::setUseCriteriaFilter(false); $c = new Criteria(); $c->addAnd(UserRolePeer::PARTNER_ID, $templatePartner->getId(), Criteria::EQUAL); $c->addAnd(UserRolePeer::STATUS, UserRoleStatus::ACTIVE, Criteria::EQUAL); $count = UserRolePeer::doCount($c); if ($count > kConf::get('copy_partner_limit_user_roles')) { throw new kCoreException("Template partner's number of [userRole] objects exceed allowed limit", kCoreException::TEMPLATE_PARTNER_COPY_LIMIT_EXCEEDED); } UserRolePeer::setUseCriteriaFilter(true); $validatorPlugins = KalturaPluginManager::getPluginInstances('IKalturaObjectValidator'); foreach ($validatorPlugins as $validatorPlugins) { $validatorPlugins->validateObject($templatePartner, IKalturaObjectValidator::OPERATION_COPY); } }
/** * Reloads this object from datastore based on primary key and (optionally) resets all associated objects. * * This will only work if the object has been saved and has a valid primary key set. * * @param boolean $deep (optional) Whether to also de-associated any related objects. * @param PropelPDO $con (optional) The PropelPDO connection to use. * @return void * @throws PropelException - if this object is deleted, unsaved or doesn't have pk match in db */ public function reload($deep = false, PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("Cannot reload a deleted object."); } if ($this->isNew()) { throw new PropelException("Cannot reload an unsaved object."); } if ($con === null) { $con = Propel::getConnection(UserRolePeer::DATABASE_NAME, Propel::CONNECTION_READ); } // We don't need to alter the object instance pool; we're just modifying this instance // already in the pool. UserRolePeer::setUseCriteriaFilter(false); $stmt = UserRolePeer::doSelectStmt($this->buildPkeyCriteria(), $con); UserRolePeer::setUseCriteriaFilter(true); $row = $stmt->fetch(PDO::FETCH_NUM); $stmt->closeCursor(); if (!$row) { throw new PropelException('Cannot find matching row in the database to reload object values.'); } $this->hydrate($row, 0, true); // rehydrate if ($deep) { // also de-associate any related objects? $this->collKuserToUserRoles = null; $this->lastKuserToUserRoleCriteria = null; } // if (deep) }