/** * Update CategoryUser by id * * @action update * @param int $categoryId * @param string $userId * @param KalturaCategoryUser $categoryUser * @param bool $override - to override manual changes * @return KalturaCategoryUser */ function updateAction($categoryId, $userId, KalturaCategoryUser $categoryUser, $override = false) { $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id; $kuser = kuserPeer::getKuserByPartnerAndUid($partnerId, $userId); if (!$kuser) { throw new KalturaAPIException(KalturaErrors::INVALID_USER_ID, $userId); } $dbCategoryKuser = categoryKuserPeer::retrieveByCategoryIdAndKuserId($categoryId, $kuser->getId()); if (!$dbCategoryKuser) { throw new KalturaAPIException(KalturaErrors::INVALID_CATEGORY_USER_ID, $categoryId, $userId); } if (!$override && ($categoryUser->updateMethod == null || $categoryUser->updateMethod == KalturaUpdateMethodType::AUTOMATIC) && $dbCategoryKuser->getUpdateMethod() == KalturaUpdateMethodType::MANUAL) { throw new KalturaAPIException(KalturaErrors::CANNOT_OVERRIDE_MANUAL_CHANGES); } $dbCategoryKuser = $categoryUser->toUpdatableObject($dbCategoryKuser); $dbCategoryKuser->save(); $categoryUser->fromObject($dbCategoryKuser, $this->getResponseProfile()); return $categoryUser; }
/** * Update CategoryUser by id * * @action update * @param int $categoryId * @param string $userId * @param KalturaCategoryUser $categoryUser * @param bool $override - to override manual changes * @return KalturaCategoryUser */ function updateAction($categoryId, $userId, KalturaCategoryUser $categoryUser, $override = false) { $partnerId = kCurrentContext::$partner_id ? kCurrentContext::$partner_id : kCurrentContext::$ks_partner_id; $kuser = kuserPeer::getKuserByPartnerAndUid($partnerId, $userId); if (!$kuser) { throw new KalturaAPIException(KalturaErrors::INVALID_USER_ID, $userId); } $dbCategoryKuser = categoryKuserPeer::retrieveByCategoryIdAndKuserId($categoryId, $kuser->getId()); if (!$dbCategoryKuser) { throw new KalturaAPIException(KalturaErrors::INVALID_CATEGORY_USER_ID, $categoryId, $userId); } if (!$override && ($categoryUser->updateMethod == null || $categoryUser->updateMethod == KalturaUpdateMethodType::AUTOMATIC) && $dbCategoryKuser->getUpdateMethod() == KalturaUpdateMethodType::MANUAL) { throw new KalturaAPIException(KalturaErrors::CANNOT_OVERRIDE_MANUAL_CHANGES); } $dbCategoryKuser = $categoryUser->toUpdatableObject($dbCategoryKuser); $category = categoryPeer::retrieveByPK($categoryId); if (!$category) { throw new KalturaAPIException(KalturaErrors::CATEGORY_NOT_FOUND, $categoryUser->categoryId); } if ($dbCategoryKuser->getKuserId() == $category->getKuserId()) { throw new KalturaAPIException(KalturaErrors::CANNOT_UPDATE_CATEGORY_USER_OWNER); } $currentKuserCategoryKuser = categoryKuserPeer::retrieveByCategoryIdAndActiveKuserId($categoryUser->categoryId, kCurrentContext::$ks_kuser_id); if (kEntitlementUtils::getEntitlementEnforcement() && (!$currentKuserCategoryKuser || $currentKuserCategoryKuser->getPermissionLevel() != CategoryKuserPermissionLevel::MANAGER)) { throw new KalturaAPIException(KalturaErrors::CANNOT_UPDATE_CATEGORY_USER, $categoryUser->categoryId); } $dbCategoryKuser->save(); $categoryUser->fromObject($dbCategoryKuser); return $categoryUser; }