示例#1
0
 /**
  * Persist new app session to DB
  * @author zbrown
  *
  * @param ApiRequestObject $apiRequest
  * @param $applicationId
  * @return string
  */
 public function persistNewAppSession(ApiRequestObject $apiRequest, $applicationId)
 {
     $publicKey = $apiRequest->getPublicKey();
     $privateKey = $apiRequest->getPrivateKey();
     $sessionToken = $this->generateSessionToken($applicationId);
     $session = new Session();
     $session->setSession($sessionToken);
     $session->setPublic($publicKey);
     $session->setSecret($privateKey);
     $session->setAppid($applicationId);
     $now = new DateTime('now');
     $session->setTimestamp($now);
     $this->getDoctrine()->getEntityManager()->persist($session);
     $this->getDoctrine()->getEntityManager()->flush();
     return $sessionToken;
 }
示例#2
0
 /**
  * Validate ApiRequest
  * @author zbrown
  *
  * @param ApiRequestObject $apiRequest
  * @return bool|string
  */
 public function validateRequest(ApiRequestObject $apiRequest, $endpoint)
 {
     if ($apiRequest->getSessionToken() == Config::API_STATUS_CHECK_SESSION_TOKEN || $apiRequest->getPublicKey() == Config::API_STATUS_CHECK_PUBLIC_KEY) {
         return 'status';
     }
     $requiredConfig = Yaml::parse(file_get_contents($this->get('kernel')->locateResource(Config::API_REQUIRED_PARAMS_CONFIG)));
     $requiredParameters = $requiredConfig['required']['api'][$endpoint];
     foreach ($requiredParameters as $key => $value) {
         if ($value === true) {
             $action = 'get' . $key;
             $res = $apiRequest->{$action}();
             if (empty($res)) {
                 return 'invalid';
                 break;
             }
         }
     }
     $app = $this->getDoctrine()->getRepository('YupItsZacFreeGeoBundle:Session')->findOneBy(array('session' => $apiRequest->getSessionToken()));
     return is_null($app) ? false : true;
 }
示例#3
0
 /**
  * Determine session type
  * @author zbrown
  *
  * @param ApiRequestObject $apiRequest
  * @return string
  */
 public function getSessionType(ApiRequestObject $apiRequest)
 {
     //2 = Normal API requests, 1 = API Status Check
     if ($apiRequest->getSessionToken() == Config::API_STATUS_CHECK_SESSION_TOKEN || $apiRequest->getPublicKey() == Config::API_STATUS_CHECK_PUBLIC_KEY) {
         return '1';
     } else {
         return '2';
     }
 }