コード例 #1
0
ファイル: Controller.php プロジェクト: stuhin/phpMVC
 /**
  * Controller constructor.
  * @param bool $isAuthenticated
  * @param null $roleNames
  */
 public function __construct($isAuthenticated = false, $roleNames = null)
 {
     Browsing::setBrowsingId();
     PageMenu::setPageMenu();
     if (Authentication::isAuthenticated()) {
         Authentication::setUserEntity();
         if ($roleNames != null && !Authentication::hasRoles($roleNames)) {
             $this->redirectToUrlFromAction('main', 'no-access');
         }
     } else {
         Authentication::unsetUserEntity();
         if ($isAuthenticated) {
             $this->redirectToUrlFromAction('account', 'login');
         }
     }
 }
コード例 #2
0
ファイル: Browsing.php プロジェクト: stuhin/phpMVC
 /**
  *
  */
 public static function createBrowsingView()
 {
     (new BrowsingViewDAO())->createBrowsingView(Browsing::getBrowsingId());
 }
コード例 #3
0
ファイル: AccountController.php プロジェクト: stuhin/phpMVC
 /**
  * POST: /account/register
  */
 public function registerPost()
 {
     $model = new AccountRegisterModel(Language::$REGISTER[Config::$LANGUAGE], true);
     if ($model->validation) {
         $userDAO = new UserDAO();
         $hasUser = $userDAO->hasUser($model->email);
         if (!$hasUser) {
             $uniqueId = $userDAO->createUser($model->email, $model->password);
             $userEntity = $userDAO->getUserWithRolesByUniqueId($uniqueId);
             $roleDAO = new RoleDAO();
             if ($userDAO->countUsers() == 0) {
                 $roleDAO->addedRoleToUser('admin', $userEntity->id);
             }
             $roleDAO->addedRoleToUser('user', $userEntity->id);
             (new BrowsingDAO())->addedBrowsingToUser($userEntity->id, Browsing::getBrowsingId());
             if (Config::$SMTP) {
                 //Send email for confirm email address
                 (new Email())->send($model->email, Language::$CONFIRM_EMAIL[Config::$LANGUAGE], Language::$CONFIRM_EMAIL[Config::$LANGUAGE] . ' http://' . $_SERVER['SERVER_NAME'] . '/account/confirm-email/' . $uniqueId);
             }
             Authentication::signIn($uniqueId);
             parent::redirectToUrlFromArray(explode('/', $model->url));
         }
         $model->emailValidation = Language::$DUPLICATE_EMAIL[Config::$LANGUAGE];
         $model->validation = false;
     }
     parent::view(new Register(), $model);
 }
コード例 #4
0
ファイル: MainController.php プロジェクト: stuhin/phpMVC
 /**
  * POST: /main/create-comment
  */
 public function createCommentPost()
 {
     $pageId = $_REQUEST['PageId'];
     $commentId = $_REQUEST['CommentId'];
     $body = $_REQUEST['Body'];
     $pageDAO = new PageDAO();
     $page = $pageDAO->getPage($pageId);
     if ($page->feedbackType != PageEntity::$FEEDBACK_COMMENTS_AUTH || Authentication::isAuthenticated()) {
         $captcha = true;
         if ($page->feedbackType == PageEntity::$FEEDBACK_COMMENTS_CAPTCHA && !Authentication::isAuthenticated()) {
             $captcha = Captcha::getCaptcha($commentId) == $_REQUEST['Captcha'];
         }
         if ($captcha) {
             $commentId = $commentId == 0 ? null : $commentId;
             $browsingId = Browsing::getBrowsingId();
             $userId = Authentication::isAuthenticated() ? Authentication::getUserEntity()->id : null;
             $commentOnPageDAO = new CommentOnPageDAO();
             $newCommentId = $commentOnPageDAO->createCommentOnPage($pageId, $commentId, $browsingId, $userId, $body);
             $newComment = $commentOnPageDAO->getCommentOnPage($newCommentId);
             echo CommentOnPageHelper::comment($newComment, $page->feedbackType);
         } else {
             echo 'captcha';
         }
     }
 }