function test_confirmation_required()
 {
     global $ACT, $INPUT, $conf, $auth;
     $ACT = 'profile_delete';
     $conf['profileconfirm'] = true;
     $_SERVER['REMOTE_USER'] = '******';
     $input = array('do' => $ACT, 'sectok' => getSecurityToken(), 'delete' => '1', 'confirm_delete' => '1', 'oldpass' => 'wrong');
     $_POST = $input;
     $_REQUEST = $input;
     $INPUT = new Input();
     $auth = new Mock_Auth_Plugin();
     // password check required - it fails, so don't delete profile
     $this->assertFalse(auth_deleteprofile());
     // now it passes, we're good to go
     $INPUT->set('oldpass', 'password');
     $INPUT->post->set('oldpass', 'password');
     $this->assertTrue(auth_deleteprofile());
 }
Example #2
0
 /**
  * Test using a closure as a filter
  * 
  * @return null
  */
 public function testFilterAsClosure()
 {
     global $_GET;
     global $_POST;
     global $_REQUEST;
     global $_FILES;
     global $_SERVER;
     $validEmail = '*****@*****.**';
     // create and register a Filter instance
     $filter = new Filter();
     $filter->add('testVal', function ($value) {
         return 'returned: ' . $value;
     });
     $input = new Input($filter);
     $input->set('get', 'testVal', $validEmail);
     $result = $input->get('testVal');
     $this->assertEquals('returned: ' . $validEmail, $result);
 }
        }
    }
    public static function set($key, $val)
    {
        self::$data[$key] = $val;
        return $val;
    }
    public function has($key)
    {
        return isset(self::$data[$key]);
    }
    public static function posted()
    {
        return !!count(self::$data);
    }
    public static function all()
    {
        return self::$data;
    }
}
foreach ($_POST as $key => $val) {
    Input::set($key, $val);
}
// http://stackoverflow.com/questions/15485354/angular-http-post-to-php-and-undefined
# POST and PUT from angular. DELETE is empty
$json = json_decode(file_get_contents("php://input"));
if ($json) {
    foreach ($json as $key => $val) {
        Input::set($key, $val);
    }
}
Example #4
0
 /**
  * Sets a parameter in $_GET and $_REQUEST
  *
  * @param string $name Parameter name
  * @param mixed  $value Value to set
  */
 public function set($name, $value)
 {
     parent::set($name, $value);
     $_REQUEST[$name] = $value;
 }
Example #5
0
 public function run()
 {
     $timer = new SystemTimer();
     $connection = null;
     $statsConnection = null;
     $rawStatsConnection = null;
     $trace = new NullTrace();
     if (FajrConfig::get('Debug.Trace') === true) {
         $trace = new HtmlTrace($timer, "--Trace--");
     }
     try {
         Input::prepare();
         $login = Input::get('login');
         Input::set('login', null);
         $krbpwd = Input::get('krbpwd');
         Input::set('krbpwd', null);
         $cosignCookie = Input::get('cosignCookie');
         Input::set('cosignCookie', null);
         // FIXME this should be refactored
         if ($login !== null && $krbpwd !== null || $cosignCookie !== null) {
             // we are going to log in, so we get a clean session
             // this needs to be done before a connection
             // is created, because we pass cookie file name
             // that contains session_id into AIS2CurlConnection
             // If we regenerated the session id afterwards,
             // we could not find the cookie file after a redirect
             FajrUtils::dropSession();
         }
         $connection = new connection\CurlConnection(FajrUtils::getCookieFile());
         $rawStatsConnection = new connection\StatsConnection($connection, new SystemTimer());
         $connection = $rawStatsConnection;
         $connection = new connection\GzipDecompressingConnection($connection, FajrConfig::getDirectory('Path.Temporary'));
         $connection = new connection\AIS2ErrorCheckingConnection($connection);
         $statsConnection = new connection\StatsConnection($connection, new SystemTimer());
         $connection = $statsConnection;
         $simpleConnection = new connection\HttpToSimpleConnectionAdapter($connection);
         AIS2Utils::connection($simpleConnection);
         // toto tu je docasne
         if (Input::get('logout') !== null) {
             FajrUtils::logout($connection);
             FajrUtils::redirect();
         }
         if ($login !== null && $krbpwd !== null) {
             $loggedIn = FajrUtils::login(new CosignLogin($login, $krbpwd), $connection);
             $login = null;
             $krbpwd = null;
         } else {
             if ($cosignCookie !== null) {
                 $loggedIn = FajrUtils::login(new AIS2CookieLogin($cosignCookie), $connection);
                 $cosignCookie = null;
             } else {
                 $loggedIn = FajrUtils::isLoggedIn();
             }
         }
         if ($loggedIn) {
             DisplayManager::addContent('<div class=\'logout\'><a class="button negative" href="' . FajrUtils::linkUrl(array('logout' => true)) . '">
     <img src="images/door_in.png" alt=""/>Odhlásiť</a></div>');
             $adminStudia = new VSES017\AdministraciaStudiaScreen($trace, $simpleConnection);
             if (Input::get('studium') === null) {
                 Input::set('studium', 0);
             }
             $zoznamStudii = $adminStudia->getZoznamStudii($trace->addChild("Get Zoznam Studii:"));
             $zoznamStudiiTable = new Table(TableDefinitions::zoznamStudii(), 'studium', array('tab' => Input::get('tab')));
             $zoznamStudiiTable->addRows($zoznamStudii->getData());
             $zoznamStudiiTable->setOption('selected_key', Input::get('studium'));
             $zoznamStudiiTable->setOption('collapsed', true);
             $zoznamStudiiCollapsible = new Collapsible(new HtmlHeader('Zoznam štúdií'), $zoznamStudiiTable, true);
             DisplayManager::addContent($zoznamStudiiCollapsible->getHtml());
             $zapisneListy = $adminStudia->getZapisneListy($trace->addChild('getZapisneListy'), Input::get('studium'));
             $zapisneListyTable = new Table(TableDefinitions::zoznamZapisnychListov(), 'list', array('studium' => Input::get('studium'), 'tab' => Input::get('tab')));
             if (Input::get('list') === null) {
                 $tmp = $zapisneListy->getData();
                 $lastList = end($tmp);
                 Input::set('list', $lastList['index']);
             }
             $zapisneListyTable->addRows($zapisneListy->getData());
             $zapisneListyTable->setOption('selected_key', Input::get('list'));
             $zapisneListyTable->setOption('collapsed', true);
             $zapisneListyCollapsible = new Collapsible(new HtmlHeader('Zoznam zápisných listov'), $zapisneListyTable, true);
             DisplayManager::addContent($zapisneListyCollapsible->getHtml());
             $terminyHodnotenia = new VSES017\TerminyHodnoteniaScreen($trace, $simpleConnection, $adminStudia->getIdZapisnyList($trace, Input::get('list')), $adminStudia->getIdStudium($trace, Input::get('list')));
             if (Input::get('tab') === null) {
                 Input::set('tab', 'TerminyHodnotenia');
             }
             $tabs = new TabManager('tab', array('studium' => Input::get('studium'), 'list' => Input::get('list')));
             // FIXME: chceme to nejak refaktorovat, aby sme nevytvarali zbytocne
             // objekty, ktore v konstruktore robia requesty
             $hodnoteniaScreen = new VSES017\HodnoteniaPriemeryScreen($trace, $simpleConnection, $adminStudia->getIdZapisnyList($trace, Input::get('list')));
             $tabs->addTab('TerminyHodnotenia', 'Moje skúšky', new MojeTerminyHodnoteniaCallback($trace, $terminyHodnotenia, $hodnoteniaScreen));
             $tabs->addTab('ZapisSkusok', 'Prihlásenie na skúšky', new ZoznamTerminovCallback($trace, $terminyHodnotenia, $hodnoteniaScreen));
             $tabs->addTab('ZapisnyList', 'Zápisný list', new ZapisanePredmetyCallback($trace, $terminyHodnotenia));
             $tabs->addTab('Hodnotenia', 'Hodnotenia/Priemery', new HodnoteniaCallback($trace, $hodnoteniaScreen));
             $tabs->setActive(Input::get('tab'));
             DisplayManager::addContent($tabs->getHtml());
             $version = '<div>Fajr verzia ' . hescape(Version::getVersionString()) . '</div>';
             DisplayManager::addContent($version);
             $statistics = "<div> Fajr made " . $statsConnection->getTotalCount() . " requests and downloaded " . $rawStatsConnection->getTotalSize() . " bytes (" . $statsConnection->getTotalSize() . " bytes uncompressed) of data from AIS2 in " . sprintf("%.3f", $statsConnection->getTotalTime()) . " seconds. It took " . sprintf("%.3f", $timer->getElapsedTime()) . " seconds to generate this page.</div>";
             DisplayManager::addContent($statistics);
         } else {
             DisplayManager::addContent('loginBox', true);
             DisplayManager::addContent('warnings', true);
             DisplayManager::addContent('terms', true);
             DisplayManager::addContent('credits', true);
             $version = "<div class='version prepend-1 span-21 last increase-line-height'>\n<strong>Verzia fajru:</strong> \n";
             $version .= hescape(Version::getVersionString());
             $version .= '</div>';
             DisplayManager::addContent($version);
             DisplayManager::addContent(Version::getChangelog(), false);
         }
     } catch (AIS2LoginException $e) {
         if ($connection) {
             FajrUtils::logout($connection);
         }
         DisplayManager::addException($e);
     } catch (Exception $e) {
         DisplayManager::addException($e);
     }
     DisplayManager::setBase(hescape(FajrUtils::basePath()));
     $trace->tlog("everything done, generating html");
     if (FajrConfig::get('Debug.Trace') === true) {
         $traceHtml = $trace->getHtml();
         DisplayManager::addContent('<div class="span-24">' . $traceHtml . '<div> Trace size:' . sprintf("%.2f", strlen($traceHtml) / 1024.0 / 1024.0) . ' MB</div></div>');
     }
     echo DisplayManager::display();
 }
Example #6
0
 public function test_set()
 {
     $_REQUEST = $this->data;
     $_POST = $this->data;
     $_GET = $this->data;
     $INPUT = new Input();
     $INPUT->set('test', 'foo');
     $this->assertEquals('foo', $_REQUEST['test']);
     $this->assertNull($_POST['test']);
     $this->assertNull($_GET['test']);
     $INPUT->get->set('test2', 'foo');
     $this->assertEquals('foo', $_GET['test2']);
     $this->assertEquals('foo', $_REQUEST['test2']);
     $this->assertNull($_POST['test']);
 }
Example #7
0
 DisplayManager::addContent($zoznamStudiiCollapsible->getHtml());
 $zapisneListy = $adminStudia->getZapisneListy(Input::get('studium'));
 $zapisneListyTable = new Table(TableDefinitions::zoznamZapisnychListov(), 'list', array('studium' => Input::get('studium'), 'tab' => Input::get('tab')));
 if (Input::get('list') === null) {
     $tmp = $zapisneListy->getData();
     $lastList = end($tmp);
     Input::set('list', $lastList['index']);
 }
 $zapisneListyTable->addRows($zapisneListy->getData());
 $zapisneListyTable->setOption('selected_key', Input::get('list'));
 $zapisneListyTable->setOption('collapsed', true);
 $zapisneListyCollapsible = new Collapsible('Zoznam zápisných listov', $zapisneListyTable, true);
 DisplayManager::addContent($zapisneListyCollapsible->getHtml());
 $terminyHodnotenia = new AIS2TerminyHodnoteniaScreen($adminStudia->getIdZapisnyList(Input::get('list')), $adminStudia->getIdStudium(Input::get('list')));
 if (Input::get('tab') === null) {
     Input::set('tab', 'TerminyHodnotenia');
 }
 $tabs = new TabManager('tab', array('studium' => Input::get('studium'), 'list' => Input::get('list')));
 // FIXME: chceme to nejak refaktorovat, aby sme nevytvarali zbytocne
 // objekty, ktore v konstruktore robia requesty
 $hodnoteniaScreen = new AIS2HodnoteniaPriemeryScreen($adminStudia->getIdZapisnyList(Input::get('list')));
 $tabs->addTab('TerminyHodnotenia', 'Moje skúšky', new MojeTerminyHodnoteniaCallback($terminyHodnotenia, $hodnoteniaScreen));
 $tabs->addTab('ZapisSkusok', 'Prihlásenie na skúšky', new ZoznamTerminovCallback($terminyHodnotenia, $hodnoteniaScreen));
 $tabs->addTab('ZapisnyList', 'Zápisný list', new ZapisanePredmetyCallback($terminyHodnotenia));
 $tabs->addTab('Hodnotenia', 'Hodnotenia/Priemery', new HodnoteniaCallback($hodnoteniaScreen));
 $tabs->setActive(Input::get('tab'));
 DisplayManager::addContent($tabs->getHtml());
 $timeDiff = microtime(true) - $startTime;
 $version = '<div>Fajr verzia ' . hescape(Version::getVersionString()) . '</div>';
 DisplayManager::addContent($version);
 $statistics = "<div> Fajr made " . $statsConnection->getTotalCount() . " requests and downloaded " . $rawStatsConnection->getTotalSize() . " bytes (" . $statsConnection->getTotalSize() . " bytes uncompressed) of data from AIS2 in " . sprintf("%.3f", $statsConnection->getTotalTime()) . " seconds. It took " . sprintf("%.3f", $timeDiff) . " seconds to generate this page.</div>";
Example #8
0
 /**
  * 
  * @static
  * @return void
  */
 public static function reset()
 {
     if (self::$_vars) {
         foreach (self::$_vars as $var) {
             Input::set('post', $var, NULL);
         }
     }
 }