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();
     }
 }
Exemple #4
0
 /**
  * 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;
 }
Exemple #7
0
 /**
  * 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);
     }
 }
Exemple #9
0
 /**
  * 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)
 }