public function getListResponse(KalturaFilterPager $pager, KalturaDetachedResponseProfile $responseProfile = null)
 {
     $userRoleFilter = $this->toObject();
     $c = new Criteria();
     $userRoleFilter->attachToCriteria($c);
     $count = UserRolePeer::doCount($c);
     $pager->attachToCriteria($c);
     $list = UserRolePeer::doSelect($c);
     $response = new KalturaUserRoleListResponse();
     $response->objects = KalturaUserRoleArray::fromDbArray($list, $responseProfile);
     $response->totalCount = $count;
     return $response;
 }
}
$criteria->addAnd(UserRolePeer::NAME, $roleName, Criteria::EQUAL);
$criteria->addAscendingOrderByColumn(UserRolePeer::ID);
$criteria->setLimit($page);
$userRoles = UserRolePeer::doSelect($criteria);
while (count($userRoles)) {
    KalturaLog::info("[" . count($userRoles) . "] user roles .");
    foreach ($userRoles as $userRole) {
        foreach ($parmissionNames as $parmissionName) {
            addPermissionsToRole($userRole, $parmissionName);
        }
    }
    kMemoryManager::clearMemory();
    $nextCriteria = clone $criteria;
    $nextCriteria->add(UserRolePeer::ID, $userRole->getId(), Criteria::GREATER_THAN);
    $userRoles = UserRolePeer::doSelect($nextCriteria);
    usleep(100);
}
KalturaLog::info("Done");
function addPermissionsToRole($role, $permissionList)
{
    $currentPermissions = $role->getPermissionNames(false, true);
    if (UserRole::ALL_PARTNER_PERMISSIONS_WILDCARD == $currentPermissions) {
        return;
    }
    $currentPermissionsArray = explode(',', $currentPermissions);
    $permissionsToAddArray = explode(',', $permissionList);
    $tempArray = array();
    foreach ($permissionsToAddArray as $perm) {
        if (in_array($perm, $currentPermissionsArray)) {
            KalturaLog::log('Role name [' . $role->getName() . '] already has permission [' . $perm . ']');
Exemple #3
0
 /**
  * @return string Comma seperated string of role names associated to the current user
  */
 public function getUserRoleNames()
 {
     if (!$this->getRoleIds()) {
         return '';
     }
     $c = new Criteria();
     $c->add(UserRolePeer::ID, explode(',', $this->getRoleIds()), Criteria::IN);
     $roles = UserRolePeer::doSelect($c);
     $names = array();
     foreach ($roles as $role) {
         $names[] = $role->getName();
     }
     return implode(',', $names);
 }
 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();
     }
 }
<?php

/**
 * enable feature for each partner
 * set to all partners with partner->partnerPackage > 1 to 1  
 * @package Deployment
 * @subpackage updates
 */
$dryRun = true;
//TODO: change for real run
if (in_array('realrun', $argv)) {
    $dryRun = false;
}
require_once dirname(__FILE__) . '/../../bootstrap.php';
$con = myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2);
KalturaStatement::setDryRun($dryRun);
$c = new Criteria();
$c->add(UserRolePeer::NAME, "System Administrator", Criteria::EQUAL);
$adminRoles = UserRolePeer::doSelect($c, $con);
foreach ($adminRoles as $adminRole) {
    $c = new Criteria();
    $c->add(KuserToUserRolePeer::USER_ROLE_ID, $adminRole->getId(), Criteria::EQUAL);
    $admins = KuserToUserRolePeer::doSelect($c, $con);
    foreach ($admins as $admin) {
        $adminUser = $admin->getkuser($con);
        if ($adminUser) {
            $adminUser->setAllowedPartners('*');
            $adminUser->save();
        }
    }
}
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(UserRolePeer::DATABASE_NAME);
         $criteria->add(UserRolePeer::ID, $pks, Criteria::IN);
         $objs = UserRolePeer::doSelect($criteria, $con);
     }
     return $objs;
 }
Exemple #7
0
 /**
  * List user roles
  * 
  * @action list
  * @param KalturaUserRoleFilter $filter
  * @param KalturaFilterPager $pager
  * @return KalturaUserRoleListResponse
  */
 public function listAction(KalturaUserRoleFilter $filter = null, KalturaFilterPager $pager = null)
 {
     if (!$filter) {
         $filter = new KalturaUserRoleFilter();
     }
     $userRoleFilter = $filter->toObject();
     $c = new Criteria();
     $userRoleFilter->attachToCriteria($c);
     $count = UserRolePeer::doCount($c);
     if ($pager) {
         $pager->attachToCriteria($c);
     }
     $list = UserRolePeer::doSelect($c);
     $response = new KalturaUserRoleListResponse();
     $response->objects = KalturaUserRoleArray::fromDbArray($list);
     $response->totalCount = $count;
     return $response;
 }
 public function testUpdateAction()
 {
     $this->startSession(KalturaSessionType::ADMIN, $this->getDbPartner()->getAdminUserId());
     // failure to update partner 0 roles
     $c = new Criteria();
     $c->addAnd(UserRolePeer::PARTNER_ID, PartnerPeer::GLOBAL_PARTNER, Criteria::EQUAL);
     $partner0Roles = UserRolePeer::doSelect($c);
     for ($i = 1; $i < 4; $i++) {
         $randId = rand(0, count($partner0Roles) - 1);
         $exceptionThrown = false;
         $updateRole = new KalturaUserRole();
         $updateRole->name = uniqid();
         try {
             $this->client->userRole->update($partner0Roles[$randId]->getId(), $updateRole);
         } catch (Exception $e) {
             $exceptionThrown = $e;
         }
         $this->checkException($exceptionThrown, 'INVALID_OBJECT_ID');
     }
     // add a new role to test with
     $newRole = new KalturaUserRole();
     $newRole->name = uniqid();
     $addedRole = $this->addRoleWrap($newRole);
     // failure to add a permisison which the partner does not have
     $updateRole = new KalturaUserRole();
     $updateRole->permissionNames = PermissionName::BATCH_BASE;
     $exceptionThrown = false;
     try {
         $addedRole = $this->client->userRole->update($addedRole->id, $updateRole);
     } catch (Exception $e) {
         $exceptionThrown = $e;
     }
     $this->checkException($exceptionThrown, 'PERMISSION_NOT_FOUND');
     // success adding and removing valid permissions
     $updateRole = new KalturaUserRole();
     $updateRole->permissionNames = PermissionName::ACCOUNT_BASE . ',' . PermissionName::CONTENT_MANAGE_EMBED_CODE;
     $resultRole = $this->client->userRole->update($addedRole->id, $updateRole);
     $this->assertEquals($updateRole->permissionNames, $resultRole->permissionNames);
     // replace permissions test - verify that old permissions are no more returned
     $updateRole = new KalturaUserRole();
     $updateRole->permissionNames = PermissionName::CONTENT_INGEST_BULK_UPLOAD . ',' . PermissionName::CUSTOM_DATA_PROFILE_DELETE;
     $resultRole = $this->client->userRole->update($addedRole->id, $updateRole);
     $this->assertEquals($updateRole->permissionNames, $resultRole->permissionNames);
     // success updating name, description and status
     $updateRole = new KalturaUserRole();
     $updateRole->name = uniqid();
     $updateRole->description = uniqid();
     $updateRole->status = KalturaUserRoleStatus::BLOCKED;
     $resultRole = $this->client->userRole->update($addedRole->id, $updateRole);
     $this->assertEquals($updateRole->name, $resultRole->name);
     $this->assertEquals($updateRole->description, $resultRole->description);
     $this->assertEquals($updateRole->status, $resultRole->status);
     // failure to update partner id
     $updateRole = new KalturaUserRole();
     $updateRole->partnerId = rand(100, 300);
     $exceptionThrown = false;
     try {
         $addedRole = $this->client->userRole->update($addedRole->id, $updateRole);
     } catch (Exception $e) {
         $exceptionThrown = $e;
     }
     $this->checkException($exceptionThrown, 'PROPERTY_VALIDATION_NOT_UPDATABLE');
     // failure to update role id
     $updateRole = new KalturaUserRole();
     $updateRole->id = rand(1, 1000);
     $exceptionThrown = false;
     try {
         $addedRole = $this->client->userRole->update($addedRole->id, $updateRole);
     } catch (Exception $e) {
         $exceptionThrown = $e;
     }
     $this->checkException($exceptionThrown, 'PROPERTY_VALIDATION_NOT_UPDATABLE');
     // failure to update createdAt
     $updateRole = new KalturaUserRole();
     $updateRole->createdAt = time();
     $exceptionThrown = false;
     try {
         $addedRole = $this->client->userRole->update($addedRole->id, $updateRole);
     } catch (Exception $e) {
         $exceptionThrown = $e;
     }
     $this->checkException($exceptionThrown, 'PROPERTY_VALIDATION_NOT_UPDATABLE');
     // failure to update updatedAt
     $updateRole = new KalturaUserRole();
     $updateRole->updatedAt = time();
     $exceptionThrown = false;
     try {
         $addedRole = $this->client->userRole->update($addedRole->id, $updateRole);
     } catch (Exception $e) {
         $exceptionThrown = $e;
     }
     $this->checkException($exceptionThrown, 'PROPERTY_VALIDATION_NOT_UPDATABLE');
     //TODO: verify that only given parameters were updated and not other parameters
 }
Exemple #9
0
 /**
  * Retrieve object using using composite pkey values.
  * @param   int $user_id
  * @param   string $role_key
  * @param      PropelPDO $con
  * @return UserRole
  */
 public static function retrieveByPK($user_id, $role_key, PropelPDO $con = null)
 {
     $_instancePoolKey = serialize(array((string) $user_id, (string) $role_key));
     if (null !== ($obj = UserRolePeer::getInstanceFromPool($_instancePoolKey))) {
         return $obj;
     }
     if ($con === null) {
         $con = Propel::getConnection(UserRolePeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $criteria = new Criteria(UserRolePeer::DATABASE_NAME);
     $criteria->add(UserRolePeer::USER_ID, $user_id);
     $criteria->add(UserRolePeer::ROLE_KEY, $role_key);
     $v = UserRolePeer::doSelect($criteria, $con);
     return !empty($v) ? $v[0] : null;
 }
//------------------------------------------------------
require_once dirname(__FILE__) . '/../../../bootstrap.php';
// stores the last handled admin kuser id, helps to restore in case of crash
$lastPartnerFile = '04.role_copy_last_partner';
$lastPartner = 1;
if (file_exists($lastPartnerFile)) {
    $lastPartner = file_get_contents($lastPartnerFile);
    KalturaLog::log('last partner file already exists with value - ' . $lastPartner);
}
if (!$lastPartner) {
    $lastPartner = 1;
}
$templatePartnerId = kConf::get('template_partner_id');
$c = new Criteria();
$c->addAnd(UserRolePeer::PARTNER_ID, $templatePartnerId, Criteria::EQUAL);
$templatePartnerRoles = UserRolePeer::doSelect($c);
$partners = getPartners($lastPartner, $partnerLimitEachLoop);
while (count($partners)) {
    foreach ($partners as $partner) {
        if (file_exists($stopFile)) {
            die('STOP FILE CREATED');
        }
        $lastPartner = $partner->getId();
        KalturaLog::log('-- partner id ' . $lastPartner);
        if ($lastPartner == PartnerPeer::GLOBAL_PARTNER || $lastPartner == $templatePartnerId) {
            KalturaLog::log('Skipping partner [' . $lastPartner . ']');
            continue;
        }
        $newPartnerRoles = array();
        foreach ($templatePartnerRoles as $role) {
            $newRole = $role->copyToPartner($partner->getId());