Ejemplo n.º 1
0
 public function oauthReturn(GithubService $api, VariableMap $variableMap, Session $session, SessionBasedOauth $sessionBasedOauth)
 {
     $code = $variableMap->getVariable('code', false);
     $state = $variableMap->getVariable('state', false);
     $oauthUnguessable = $session->getSessionVariable('oauthUnguessable', null);
     if (!$code || !$state || !$oauthUnguessable) {
         $errorContext = OauthErrorContext::create("Missing data: '{$code}' '{$state}' '{$oauthUnguessable}'");
         return JigExecutable::createWithSharedObjects("pages/oauth/error", [$errorContext]);
     }
     if ($state !== $oauthUnguessable) {
         //Miss-match on what we're tring to validated.
         $errorContext = OauthErrorContext::create("Mismatch on secret'");
         return JigExecutable::createWithSharedObjects("pages/oauth/error", [$errorContext]);
     }
     try {
         $oauthOperation = $api->getOauthAuthorization(GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, $code, $oauthUnguessable);
         $oauthOperation->setRedirect_uri("http://" . SERVER_HOSTNAME . "/oauthReturn");
         $accessResponse = $oauthOperation->execute();
         $session->setSessionVariable(GITHUB_ACCESS_RESPONSE_KEY, $accessResponse);
         $authToken = new Oauth2Token($accessResponse->accessToken);
         $sessionBasedOauth->save($authToken);
         $oauthSuccessContext = OauthSuccessContext::create($accessResponse);
         return JigExecutable::createWithSharedObjects("pages/oauth/success", [$oauthSuccessContext]);
     } catch (GithubArtaxServiceException $fae) {
         $errorContext = OauthErrorContext::create($fae->getMessage());
         return JigExecutable::createWithSharedObjects("pages/oauth/error", [$errorContext]);
     }
 }
Ejemplo n.º 2
0
 public static function createAuthBox(Session $session)
 {
     $data = $session->getData();
     if (array_key_exists('username', $data)) {
         return LogoutBox::createFromUsername($data['username']);
     }
     return new LoginBox();
 }
Ejemplo n.º 3
0
 public function display()
 {
     $sessionData = $this->session->getData();
     if (isset($sessionData['uris']) && is_array($sessionData['uris'])) {
         echo "<ul>";
         foreach ($sessionData['uris'] as $uri) {
             echo "<li>" . $uri . "</li>";
         }
         echo "</ul>";
     } else {
         echo "No previous uris";
     }
 }
Ejemplo n.º 4
0
 public function notepad(TierJig $tierJig, VariableMap $variableMap, Session $session)
 {
     $data = $session->getData();
     $value = $variableMap->getVariable('data', false);
     if ($value !== false && strlen(trim($value)) != 0) {
         $data[] = $value;
         $session->setData($data);
     }
     $value = $variableMap->getVariable('submit', false);
     if ($value !== false && strcmp($value, "Clear") === 0) {
         $session->setData([]);
     }
     $session->save();
     return $tierJig->createJigExecutable('pages/notepad');
 }
Ejemplo n.º 5
0
 public static function initialExecutable(Session $session)
 {
     $data = $session->getSessionVariable(GITHUB_ACCESS_RESPONSE_KEY, null);
     $token = new NullToken();
     $oauthContext = new OauthContext(false, $token);
     if (strlen($data) > 0) {
         if (strpos($data, 'token ') === 0) {
             $data = substr($data, strlen('token '));
         }
         $token = new Oauth2Token($data);
         $oauthContext = new OauthContext(true, $token);
     }
     $aliases = [];
     $aliases['GithubService\\AuthToken'] = get_class($token);
     return new InjectionParams([$oauthContext, $token], $aliases);
 }
Ejemplo n.º 6
0
 /**
  * @param Session $session
  * @param HeadersSet $headerSet
  * @return int
  */
 public static function addSessionHeader(Session $session, HeadersSet $headerSet)
 {
     $headers = $session->getHeaders(\ASM\SessionManager::CACHE_PRIVATE);
     foreach ($headers as $key => $value) {
         $headerSet->addHeader($key, $value);
     }
     return TierApp::PROCESS_CONTINUE;
 }