public static function enableForPartner($permissionName, $permissionType, $partnerId, $friendlyName = null, $description = null) { $permission = new Permission(); $permission->setName($permissionName); $permission->setFriendlyName($friendlyName ? $friendlyName : $permissionName); $permission->setDescription($description); $permission->setType($permissionType); $permission->setStatus(PermissionStatus::ACTIVE); try { // try to add permission self::addToPartner($permission, $partnerId); return true; } catch (kPermissionException $e) { $code = $e->getCode(); if ($code == kPermissionException::PERMISSION_ALREADY_EXISTS) { // permission already exists - set status to active $permission = self::getByNameAndPartner($permissionName, array($partnerId)); if (!$permission) { throw new kCoreException("Permission [{$permissionName}] not found for partner [{$partnerId}]", kCoreException::INTERNAL_SERVER_ERROR); } $permission->setStatus(PermissionStatus::ACTIVE); $permission->save(); return true; } throw $e; } throw new kCoreException('Unknown error occured', kCoreException::INTERNAL_SERVER_ERROR); }
public static function factory(Storage $storage, $row) { $permission = new Permission($storage); $permission->setPermissionID($row["permissionid"]); $permission->setLabel($row["label"]); $permission->setDescription($row["description"]); $permission->isGlobal($row["global"]); return $permission; }
/** * Copy current permission to the given partner. * @param int $partnerId */ public function copyToPartner($partnerId) { $permission = new Permission(); $permission->setName($this->getName()); $permission->setFriendlyName($this->getFriendlyName()); $permission->setDescription($this->getDescription()); $permission->setStatus($this->getStatus()); $permission->setTags($this->getTags()); $permission->setType($this->getType()); $permission->setCustomData($this->getCustomData()); $permission->setPartnerId($partnerId); // set new partner id return $permission; }
/** * Create a special partner group permission for given partner id, or get an existing one * @param int $partnerId * @param string $partnerGroup */ function getOrCreatePartnerGroupPermission($partnerId, $partnerGroup) { $permissionName = 'PARTNER_' . $partnerId . '_GROUP_' . $partnerGroup . '_PERMISSION'; PermissionPeer::clearInstancePool(); $c = new Criteria(); $c->addAnd(PermissionPeer::PARTNER_ID, $partnerId, Criteria::EQUAL); $c->addAnd(PermissionPeer::NAME, $permissionName, Criteria::EQUAL); $c->addAnd(PermissionPeer::TYPE, PermissionType::PARTNER_GROUP, Criteria::EQUAL); $permission = PermissionPeer::doSelectOne($c); if (!$permission) { // create permission if not yet created $permission = new Permission(); $permission->setPartnerId($partnerId); $permission->setName($permissionName); $permission->setFriendlyName('Partner ' . $partnerId . ' permission for group ' . $partnerGroup); $permission->setDescription('Partner ' . $partnerId . ' permission for group ' . $partnerGroup); $permission->setType(PermissionType::PARTNER_GROUP); $permission->setPartnerGroup($partnerGroup); $permission->setStatus(PermissionStatus::ACTIVE); $permission->save(); } else { if ($permission->getPartnerGroup() != $partnerGroup) { $msg = '***** ERROR - Permission id [' . $permission->getId() . '] partner group [' . $permission->getPartnerGroup() . '] is different from the required partner group [' . $partnerGroup . ']'; KalturaLog::alert($msg); echo $msg . PHP_EOL; } } return $permission; }
$players508Permission->setPartnerId($partner->getId()); $players508Permission->setName(PermissionName::FEATURE_508_PLAYERS); $players508Permission->setFriendlyName('508 players feature'); $players508Permission->setDescription('Permission to use 508 players'); $players508Permission->setStatus(PermissionStatus::ACTIVE); $players508Permission->setType(PermissionType::SPECIAL_FEATURE); $newPermissions[] = $players508Permission; } // live stream $allowedLiveStream = $partner->getFromCustomData("liveEnabled", null, 0); if ($allowedLiveStream) { $livePermission = new Permission(); $livePermission->setPartnerId($partner->getId()); $livePermission->setName(PermissionName::FEATURE_LIVE_STREAM); $livePermission->setFriendlyName('Live stream feature'); $livePermission->setDescription('Permission to use live stream'); $livePermission->setStatus(PermissionStatus::ACTIVE); $livePermission->setType(PermissionType::SPECIAL_FEATURE); $newPermissions[] = $livePermission; } if (!$dryRun) { foreach ($newPermissions as $permission) { KalturaLog::log('SAVING new permission for partner [' . $partner->getId() . ']:'); PermissionPeer::enableForPartner($permission->getName(), $permission->getType(), $partner->getId(), $permission->getFriendlyName(), $permission->getDescription()); KalturaLog::log(print_r($permission, true)); } } else { foreach ($newPermissions as $permission) { KalturaLog::log('DRY RUN ONLY - new permission for partner [' . $partner->getId() . ']:'); KalturaLog::log(print_r($permission, true)); // dry run - no saving!