public function Save()
 {
     // Create view
     $pageView = $this->ctrlHelper->CreateView('PageView');
     // Load file dependencies
     $this->ctrlHelper->LoadDALModel('UserDAL');
     $this->ctrlHelper->LoadDALModel('LoginDAL');
     // Create objects
     $pages = $this->ctrlHelper->CreateDALModel('PageDAL');
     $auth = $this->ctrlHelper->CreateService('AuthService');
     if ($auth->IsUserLoggedIn()) {
         // Get page info from view
         $pageInfoArray = $pageView->GetPageInfo();
         // Get logged in user
         $user = $auth->GetLoggedInUser();
         // Create new page
         $page = new \model\Page($pageInfoArray['pageId'], $pageInfoArray['header'], $pageInfoArray['content'], $user->GetUsername());
         // Check if there was validation errors
         if (!\model\ValidationService::IsValid()) {
             \model\ValidationService::ConvertErrorsToFlashMessages();
             $pageId = $page->GetPageId();
         } else {
             // Generate slug
             $page->GenerateSlug();
             $pageId = $pages->Save($page);
             \model\FlashMessageService::Add("Sidan sparades med ett lyckat resultat.");
         }
         // Get controller name
         $ctrlName = $this->ctrlHelper->CtrlToString($this);
         // Redirect
         $this->ctrlHelper->RedirectTo($ctrlName . "/show/" . $pageId . '/' . $page->GetSlug());
     }
 }
 public function Login()
 {
     // Create view
     $loginView = $this->ctrlHelper->CreateView('LoginView');
     // Load file dependencies
     $this->ctrlHelper->LoadBLLModel('User');
     $this->ctrlHelper->LoadDALModel('UserDAL');
     $this->ctrlHelper->LoadDALModel('LoginDAL');
     $this->ctrlHelper->LoadService('UserClientService');
     // Create Auth service
     $auth = $this->ctrlHelper->CreateService('AuthService');
     // If user is already logged in
     if ($auth->IsUserLoggedIn()) {
         $this->ctrlHelper->RedirectTo("page");
     }
     // If user wants to login
     if ($loginView->UserWantsToLogin()) {
         // Get login attempt
         $loginAttemptArray = $loginView->GetLoginAttempt();
         // Create new user from login attempt
         $loginAttemptUser = new \model\User(NULL, $loginAttemptArray['username'], "", "", $loginAttemptArray['password'], false);
         // If there are no validation errors, proceed.
         if (\model\ValidationService::IsValid()) {
             // Try to authenticate user
             if ($user = $auth->Authenticate($loginAttemptUser)) {
                 // Store logged in user object in sessions cookie
                 $auth->KeepUserLoggedInForSession($user);
                 if ($loginView->UserWantsLoginToBeRemembered()) {
                     // Save persistent login on server
                     $auth->SaveLoginOnServer($user);
                     $loginView->SaveLoginOnClient($user);
                 }
                 \model\FlashMessageService::Add("Inloggningen lyckades.");
                 $this->ctrlHelper->RedirectTo("page/show");
             } else {
                 // The user was denied access
                 \model\FlashMessageService::Add("Fel användarnamn eller lösenord", "warning");
             }
         } else {
             // Move errors to flash messages, witch will be displayed for user.
             \model\ValidationService::ConvertErrorsToFlashMessages();
         }
     }
     $this->ctrlHelper->RedirectTo($this);
 }