Exemple #1
0
 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;
 }
Exemple #3
0
 /**
  * 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!