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 . ']');
/** * @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; }
/** * 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 }
/** * 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());