예제 #1
0
 /**
  * Will start a ks (always a regular one with view and edit privileges
  * verification will be done according to the version
  */
 public static function startKSessionFromLks($partner_id, $lks, $puser_id, $version, &$ks_str, &$ks, $desired_expiry_in_seconds = 86400)
 {
     $ks_max_expiry_in_seconds = "";
     // see if we want to use the generic setting of the partner
     $result = myPartnerUtils::isValidLks($partner_id, $lks, $puser_id, $version, $ks_max_expiry_in_seconds);
     if ($result >= 0) {
         if ($ks_max_expiry_in_seconds && $ks_max_expiry_in_seconds < $desired_expiry_in_seconds) {
             $desired_expiry_in_seconds = $ks_max_expiry_in_seconds;
         }
         $ks = new ks();
         $ks->valid_until = time() + $desired_expiry_in_seconds;
         // store in milliseconds to make comparison easier at validation time
         $ks->type = ks::TYPE_KS;
         $ks->partner_id = $partner_id;
         $ks->partner_pattern = $partner_id;
         $ks->error = 0;
         $ks->rand = microtime(true);
         $ks->user = $puser_id;
         $ks->privileges = "view:*,edit:*";
         // give privileges for view & edit
         $ks_str = $ks->toSecureString();
         return 0;
     } else {
         return $result;
     }
 }