Ejemplo n.º 1
0
function addPermission($permissionCfg)
{
    // verify obligatory fields
    if (!$permissionCfg->name) {
        throw new Exception('Permission name must be set');
    }
    if (is_null($permissionCfg->partnerId) || $permissionCfg->partnerId === '') {
        throw new Exception('Permission partner id must be set');
    }
    // init new db permission object
    $permission = new Permission();
    foreach ($permissionCfg as $key => $value) {
        $setterCallback = array($permission, "set{$key}");
        call_user_func_array($setterCallback, array($value));
    }
    if (!$permission->getFriendlyName()) {
        $permission->setFriendlyName($permission->getName());
    }
    if (!$permission->getStatus()) {
        $permission->setStatus(PermissionStatus::ACTIVE);
    }
    // add to database
    KalturaLog::log('Adding new permission with name [' . $permission->getName() . '] to partner id [' . $permission->getPartnerId() . ']');
    try {
        PermissionPeer::addToPartner($permission, $permission->getPartnerId());
    } catch (kPermissionException $e) {
        if ($e->getCode() === kPermissionException::PERMISSION_ALREADY_EXISTS) {
            KalturaLog::log('Permission name [' . $permission->getName() . '] already exists for partner id [' . $permission->getPartnerId() . ']');
        } else {
            throw $e;
        }
    }
}
Ejemplo n.º 2
0
function addPermissionToPartner($permissionCfg, $partnerId = null)
{
    // init new db permission object
    if (is_null($partnerId)) {
        $partnerId = $permissionCfg->partnerId;
    }
    PermissionPeer::setUseCriteriaFilter(false);
    $permission = PermissionPeer::getByNameAndPartner($permissionCfg->name, $partnerId);
    PermissionPeer::setUseCriteriaFilter(true);
    if (!$permission) {
        $permission = new Permission();
    }
    foreach ($permissionCfg as $key => $value) {
        if ($key == 'partnerPackages') {
            continue;
        }
        $setterCallback = array($permission, "set{$key}");
        call_user_func_array($setterCallback, array($value));
    }
    if (!$permission->getFriendlyName()) {
        $permission->setFriendlyName($permission->getName());
    }
    if ($partnerId != null) {
        $permission->setPartnerId($partnerId);
    }
    $permission->setStatus(PermissionStatus::ACTIVE);
    // add to database
    KalturaLog::log('Adding new permission with name [' . $permission->getName() . '] to partner id [' . $permission->getPartnerId() . ']');
    try {
        if ($permission->getId()) {
            $permission->save();
        } else {
            PermissionPeer::addToPartner($permission, $permission->getPartnerId());
        }
    } catch (kPermissionException $e) {
        if ($e->getCode() === kPermissionException::PERMISSION_ALREADY_EXISTS) {
            KalturaLog::log('Permission name [' . $permission->getName() . '] already exists for partner id [' . $permission->getPartnerId() . ']');
        } else {
            throw $e;
        }
    }
}
        // 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!
            }
        }
        file_put_contents($lastPartnerFile, $lastPartner);
    }
    $partners = getPartners($lastPartner, $partnerLimitEachLoop);
}
$msg = 'Done - ' . ($dryRun ? 'DRY RUN!' : 'REAL RUN!');
KalturaLog::log($msg);