Example #1
0
 public function __construct(Request $request)
 {
     $params = $request::getParameters(true);
     if (!isset($params[1])) {
         $this->response = Response::fourOhFour();
         return;
     }
     if (empty($params[1])) {
         $this->response = Response::fourOhFour();
         return;
     }
     $className = str_replace('.', '', trim($params[1])) . 'Form';
     $file = EDUCASK_ROOT . "/site/modules/users/classes/{$className}.php";
     if (!is_readable($file)) {
         $this->response = Response::fourOhFour();
         return;
     }
     require_once $file;
     if (!class_exists($className)) {
         $this->response = Response::fiveHundred();
         return;
     }
     $subModule = new $className($request);
     $this->response = $subModule->getResponse();
 }
Example #2
0
 private function buildMinifiedCSS()
 {
     $siteObject = Site::getInstance();
     $minifiedSoFar = "";
     $themesCssFiles = glob(EDUCASK_ROOT . "/site/themes/{$siteObject->getTheme()}/css/*.css");
     foreach ($themesCssFiles as $cssFile) {
         if (!is_readable($cssFile)) {
             continue;
         }
         $rawFile = file_get_contents($cssFile);
         $rawFile = $this->minifyCssString($rawFile);
         $minifiedSoFar .= $rawFile;
     }
     $minifiedSoFar .= $this->getOtherCssFiles();
     $minifiedSoFar .= $this->getRawCss();
     $objectCache = ObjectCache::getInstance();
     $objectCache->setObject('minifiedCSS', $minifiedSoFar, true);
     $response = Response::fiveHundred();
     $response->setRawContent($minifiedSoFar);
     $response->setHeader('Content-Type', "text/css");
     $response->setResponseCode(200);
     return $response;
 }
Example #3
0
 private function doLogIn()
 {
     if (!AntiForgeryToken::getInstance()->validate()) {
         return Response::fiveHundred();
     }
     if (!Honeypot::getInstance()->validate()) {
         return Response::fiveHundred();
     }
     $hookEngine = HookEngine::getInstance();
     $hookEngine->runAction('userIsLoggingIn');
     $user = CurrentUser::getUserSession();
     if ($user->isLoggedIn()) {
         return Response::redirect(new Link(""));
     }
     $username = Request::getPostParameter("username");
     $password = Request::getPostParameter("password");
     if (!$username) {
         return $this->showErrorMessage();
     }
     if (!$password) {
         return $this->showErrorMessage();
     }
     $lockoutEngine = LockoutEngine::getInstance();
     if ($lockoutEngine->isLockedOut($_SERVER['REMOTE_ADDR'])) {
         return Response::redirect(new Link("users/login"));
     }
     $logger = Logger::getInstance();
     $username = preg_replace('/\\s+/', '', strip_tags($username));
     if (!$user->logIn($username, $password)) {
         $logger->logIt(new LogEntry(0, logEntryType::warning, 'Someone failed to log into ' . $username . '\'s account from IP:' . $_SERVER['REMOTE_ADDR'], 0, new DateTime()));
         return $this->showErrorMessage();
     }
     $user = CurrentUser::getUserSession();
     $logger->logIt(new LogEntry(0, logEntryType::info, 'A new session was opened for ' . $user->getFullName() . ', who has an IP of ' . $_SERVER['REMOTE_ADDR'] . '.', $user->getUserID(), new DateTime()));
     $hookEngine->runAction('userLoggedIn');
     return Response::redirect(new Link(""));
 }
Example #4
0
 private static function getResponse($moduleInCharge)
 {
     $moduleEngine = ModuleEngine::getInstance();
     $moduleInCharge = $moduleEngine->includeModule($moduleInCharge);
     if ($moduleInCharge === false) {
         return Response::fourOhFour();
     }
     $module = new $moduleInCharge(Request::getInstance());
     $response = $module->getResponse();
     if (!is_object($response)) {
         return Response::fiveHundred();
     }
     if (get_class($response) !== "Response") {
         return Response::fiveHundred();
     }
     return $response;
 }
 private function secondStepPost($inParam2)
 {
     if (!$this->request->isPostRequest()) {
         $this->response = Response::fourOhFour();
         return;
     }
     if (!AntiForgeryToken::getInstance()->validate()) {
         $this->response = Response::fiveHundred();
         return;
     }
     if (!Honeypot::getInstance()->validate()) {
         $this->response = Response::fiveHundred();
         return;
     }
     $token = Request::getPostParameter('token');
     $email = Request::getPostParameter('email');
     $newPassword = Request::getPostParameter('newPassword');
     $confirmNewPassword = Request::getPostParameter('confirmNewPassword');
     if ($token === false) {
         $this->response = Response::fiveHundred();
         return;
     }
     if ($email === false) {
         $this->response = Response::fiveHundred();
         return;
     }
     if ($newPassword === false) {
         $this->response = Response::fiveHundred();
         return;
     }
     if ($confirmNewPassword === false) {
         $this->response = Response::fiveHundred();
         return;
     }
     $token = preg_replace('/\\s+/', '', strip_tags($token));
     if ($inParam2 !== $token) {
         $this->response = Response::fiveHundred();
         return;
     }
     $forgotPasswordEngine = ForgotPasswordEngine::getInstance();
     $forgotPassword1 = $forgotPasswordEngine->getForgotPasswordByToken($token);
     if ($forgotPassword1 === false) {
         $this->response = Response::fiveHundred();
         return;
     }
     if (!$forgotPasswordEngine->forgotPasswordIsOfValidAge($forgotPassword1)) {
         $this->response = Response::fourOhFour();
         return;
     }
     $username = preg_replace('/\\s+/', '', strip_tags($email));
     $validator = new emailValidator();
     if (!$validator->validate($username)) {
         $this->showErrorMessageForForgotPasswordIdentity();
         $this->redirectOnError($inParam2);
         return;
     }
     $user = UserEngine::getInstance()->getUserByEmail($username);
     if ($user === false) {
         $this->showErrorMessageForForgotPasswordIdentity();
         $this->redirectOnError($inParam2);
         return;
     }
     $forgotPassword2 = $forgotPasswordEngine->getForgotPasswordByUserID($user->getUserID());
     if ($forgotPassword2 === false) {
         $this->showErrorMessageForForgotPasswordIdentity();
         $this->redirectOnError($inParam2);
         return;
     }
     if (!$forgotPasswordEngine->forgotPasswordIsOfValidAge($forgotPassword2)) {
         $this->showErrorMessageForForgotPasswordIdentity();
         $this->redirectOnError($inParam2);
         return;
     }
     if ($forgotPassword1->getID() !== $forgotPassword2->getID()) {
         $this->showErrorMessageForForgotPasswordIdentity();
         $this->redirectOnError($inParam2);
         return;
     }
     if (!$forgotPassword1->verify($forgotPassword2->getToken(), $forgotPassword2->getUserID())) {
         $this->showErrorMessageForForgotPasswordIdentity();
         $this->redirectOnError($inParam2);
         return;
     }
     if (!$forgotPassword2->verify($forgotPassword1->getToken(), $forgotPassword1->getUserID())) {
         $this->showErrorMessageForForgotPasswordIdentity();
         $this->redirectOnError($inParam2);
         return;
     }
     $minimumPasswordLength = $forgotPasswordEngine->getMinimumPasswordLength();
     if ($newPassword !== $confirmNewPassword) {
         $this->showErrorMessageForForgotPasswordNonMatch($minimumPasswordLength);
         $this->redirectOnError($inParam2);
         return;
     }
     if (!$forgotPasswordEngine->resetUsersPassword($forgotPassword1->getToken(), $forgotPassword2->getUserID(), $newPassword, $confirmNewPassword)) {
         $this->showErrorMessageForForgotPasswordNonMatch($minimumPasswordLength);
         $this->redirectOnError($inParam2);
         return;
     }
     $forgotPasswordEngine->removeForgotPassword($forgotPassword1);
     $this->showSuccessMessageForForgotPasswordChange();
     $this->response = Response::redirect(new Link("users/login"));
 }