/**
  * Function creates new partner, saves all the required data to it, and copies objects & filesyncs of template content to its ID.
  * @param string $partner_name
  * @param string $contact
  * @param string $email
  * @param CommercialUseType $ID_is_for
  * @param string $SDK_terms_agreement
  * @param string $description
  * @param string $website_url
  * @param string $password
  * @param Partner $partner
  * @param int $templatePartnerId
  * @return Partner
  */
 private function createNewPartner($partner_name, $contact, $email, $ID_is_for, $SDK_terms_agreement, $description, $website_url, $password = null, $newPartner = null, $templatePartnerId = null)
 {
     $secret = md5($this->str_makerand(5, 10, true, false, true));
     $admin_secret = md5($this->str_makerand(5, 10, true, false, true));
     if (!$newPartner) {
         $newPartner = new Partner();
     }
     if ($partner_name) {
         $newPartner->setPartnerName($partner_name);
     }
     $newPartner->setAdminSecret($admin_secret);
     $newPartner->setSecret($secret);
     $newPartner->setAdminName($contact);
     $newPartner->setAdminEmail($email);
     $newPartner->setUrl1($website_url);
     if ($ID_is_for === "commercial_use" || $ID_is_for === CommercialUseType::COMMERCIAL_USE) {
         $newPartner->setCommercialUse(true);
     } else {
         //($ID_is_for == "non-commercial_use") || $ID_is_for === CommercialUseType::NON_COMMERCIAL_USE)
         $newPartner->setCommercialUse(false);
     }
     $newPartner->setDescription($description);
     $newPartner->setKsMaxExpiryInSeconds(86400);
     $newPartner->setModerateContent(false);
     $newPartner->setNotify(false);
     $newPartner->setAppearInSearch(mySearchUtils::DISPLAY_IN_SEARCH_PARTNER_ONLY);
     $newPartner->setIsFirstLogin(true);
     /* fix drupal5 module partner type */
     //var_dump($description);
     if ($this->partnerParentId) {
         // this is a child partner of some VAR/partner GROUP
         $newPartner->setPartnerParentId($this->partnerParentId);
         $newPartner->setMonitorUsage(PartnerFreeTrialType::NO_LIMIT);
         $parentPartner = PartnerPeer::retrieveByPK($this->partnerParentId);
         $newPartner->setPartnerPackage($parentPartner->getPartnerPackage());
     }
     if (substr_count($description, 'Drupal module|')) {
         $newPartner->setType(102);
     }
     $newPartner->save();
     // if name was left empty - which should not happen - use id as name
     if (!$partner_name) {
         $partner_name = $newPartner->getId();
     }
     $newPartner->setPartnerName($partner_name);
     $newPartner->setPrefix($newPartner->getId());
     $newPartner->setPartnerAlias(md5($newPartner->getId() . 'kaltura partner'));
     // set default conversion profile for trial accounts
     if ($newPartner->getType() == Partner::PARTNER_TYPE_KMC) {
         $newPartner->setDefConversionProfileType(ConversionProfile::DEFAULT_TRIAL_COVERSION_PROFILE_TYPE);
     }
     $newPartner->save();
     // remove the default criteria from all peers and recreate it with the right partner id
     myPartnerUtils::resetAllFilters();
     myPartnerUtils::applyPartnerFilters($newPartner->getId(), true);
     $partner_id = $newPartner->getId();
     widget::createDefaultWidgetForPartner($partner_id, $this->createNewSubPartner($newPartner));
     $fromPartner = PartnerPeer::retrieveByPK($templatePartnerId ? $templatePartnerId : kConf::get("template_partner_id"));
     if (!$fromPartner) {
         KalturaLog::log("Template content partner was not found!");
     } else {
         $newPartner->setI18nTemplatePartnerId($templatePartnerId);
         myPartnerUtils::copyTemplateContent($fromPartner, $newPartner, true);
     }
     if ($newPartner->getType() == Partner::PARTNER_TYPE_WORDPRESS) {
         kPermissionManager::setPs2Permission($newPartner);
     }
     $newPartner->setKmcVersion(kConf::get('new_partner_kmc_version'));
     $newPartner->save();
     return $newPartner;
 }
 private function createNewPartner($parnter_name, $contact, $email, $ID_is_for, $SDK_terms_agreement, $description, $website_url, $password = null, $partner = null)
 {
     $secret = md5($this->str_makerand(5, 10, true, false, true));
     $admin_secret = md5($this->str_makerand(5, 10, true, false, true));
     $newPartner = new Partner();
     if ($parnter_name) {
         $newPartner->setPartnerName($parnter_name);
     }
     $newPartner->setAdminSecret($admin_secret);
     $newPartner->setSecret($secret);
     $newPartner->setAdminName($contact);
     $newPartner->setAdminEmail($email);
     $newPartner->setUrl1($website_url);
     if ($ID_is_for === "commercial_use" || $ID_is_for === CommercialUseType::COMMERCIAL_USE) {
         $newPartner->setCommercialUse(true);
     } else {
         //($ID_is_for == "non-commercial_use") || $ID_is_for === CommercialUseType::NON_COMMERCIAL_USE)
         $newPartner->setCommercialUse(false);
     }
     $newPartner->setDescription($description);
     $newPartner->setKsMaxExpiryInSeconds(86400);
     $newPartner->setModerateContent(false);
     $newPartner->setNotify(false);
     $newPartner->setAppearInSearch(mySearchUtils::DISPLAY_IN_SEARCH_KALTURA_NETWORK);
     $newPartner->setIsFirstLogin(true);
     /* fix drupal5 module partner type */
     //var_dump($description);
     if ($this->partnerParentId) {
         // this is a child partner of some VAR/partner GROUP
         $newPartner->setPartnerParentId($this->partnerParentId);
         $newPartner->setMonitorUsage(0);
     }
     if (substr_count($description, 'Drupal module|')) {
         $newPartner->setType(102);
         if ($partner) {
             $partner->setType(102);
         }
     }
     if ($partner) {
         if ($partner->getType()) {
             $newPartner->setType($partner->getType());
         }
         if ($partner->getContentCategories()) {
             $newPartner->setContentCategories($partner->getContentCategories());
         }
         if ($partner->getPhone()) {
             $newPartner->setPhone($partner->getPhone());
         }
         if ($partner->getDescribeYourself()) {
             $newPartner->setDescribeYourself($partner->getDescribeYourself());
         }
         if ($partner->getAdultContent()) {
             $newPartner->setAdultContent($partner->getAdultContent());
         }
         if ($partner->getDefConversionProfileType()) {
             $newPartner->setDefConversionProfileType($partner->getDefConversionProfileType());
         }
         // new fields of registration form
         if ($partner->getFirstName()) {
             $newPartner->setFirstName($partner->getFirstName());
         }
         if ($partner->getLastName()) {
             $newPartner->setLastName($partner->getLastName());
         }
         if ($partner->getCountry()) {
             $newPartner->setCountry($partner->getCountry());
         }
         if ($partner->getState()) {
             $newPartner->setState($partner->getState());
         }
         if ($partner->getAdditionalParams() && is_array($partner->getAdditionalParams()) && count($partner->getAdditionalParams())) {
             $newPartner->setAdditionalParams($partner->getAdditionalParams());
         }
     }
     $newPartner->save();
     // if name was left empty - which should not happen - use id as name
     if (!$parnter_name) {
         $parnter_name = $newPartner->getId();
     }
     $newPartner->setPartnerName($parnter_name);
     $newPartner->setPrefix($newPartner->getId());
     $newPartner->setPartnerAlias(md5($newPartner->getId() . 'kaltura partner'));
     // set default conversion profile for trial accounts
     if ($newPartner->getType() == Partner::PARTNER_TYPE_KMC) {
         $newPartner->setDefConversionProfileType(ConversionProfile::DEFAULT_TRIAL_COVERSION_PROFILE_TYPE);
     }
     $newPartner->save();
     $partner_id = $newPartner->getId();
     widget::createDefaultWidgetForPartner($partner_id, $this->createNewSubPartner($newPartner));
     $fromPartner = PartnerPeer::retrieveByPK(kConf::get("template_partner_id"));
     if (!$fromPartner) {
         KalturaLog::log("Template content partner was not found!");
     } else {
         myPartnerUtils::copyTemplateContent($fromPartner, $newPartner, true);
     }
     $newPartner->setKmcVersion(kConf::get('new_partner_kmc_version'));
     $newPartner->save();
     return $newPartner;
 }
    // Note: using all special characters this reads: "~!@#$%^&*()_+`-={}|\\]?[\":;'><,./";
    if ($minlength > $maxlength) {
        $length = mt_rand($maxlength, $minlength);
    } else {
        $length = mt_rand($minlength, $maxlength);
    }
    $key = "";
    for ($i = 0; $i < $length; $i++) {
        $key .= $charset[mt_rand(0, strlen($charset) - 1)];
    }
    return md5($key);
}
$partner = new Partner();
$partner->setId(-3);
$partner->setPartnerName('Hosted Pages');
$partner->setPartnerAlias('Hosted Pages');
$partner->setDescription('Build-in partner - used for hosted pages');
$partner->setSecret(generateSecret());
$partner->setAdminSecret(generateSecret());
$partner->setMaxNumberOfHitsPerDay(-1);
$partner->setAppearInSearch(mySearchUtils::DISPLAY_IN_SEARCH_NONE);
$partner->setInvalidLoginCount(0);
$partner->setKsMaxExpiryInSeconds(86400);
$partner->setCreateUserOnDemand(false);
$partner->setCommercialUse(false);
$partner->setModerateContent(false);
$partner->setNotify(false);
$partner->setIsFirstLogin(true);
$partner->setAdminLoginUsersQuota(0);
$partner->setStatus(Partner::PARTNER_STATUS_ACTIVE);
$partner->setType(PartnerGroupType::PUBLISHER);