Example #1
0
 /**
  * Used to set a session variable that can be used to output messages in the view.
  *
  * In your controller: $this->Flash->set('flash-name', 'Fragment/Flash/success', ['message' => "my message"]);
  *
  * @param string $name Flash message name
  * @param string $fragment  The fragment used to render the flash message
  * @param array $params An array of variables to make available when using an fragment
  * @return void
  */
 public function set(string $name, string $fragment, array $params = [])
 {
     $session = Session::getInstance();
     $flashStack = $session->get('FlashStack');
     $flashStack[$name] = ["fragment" => $fragment, "params" => $params];
     $session->set('FlashStack', $flashStack);
 }
Example #2
0
 public function flashMessages($names = [])
 {
     $names = (array) $names;
     $session = Session::getInstance();
     if (!$session->has("FlashStack")) {
         return [];
     }
     $flashStack = $session->get("FlashStack");
     if (!is_array($flashStack)) {
         throw new UnexpectedValueException('Value for flash stack must be an array.');
     }
     $flashMessages = [];
     if (empty($names)) {
         $names = array_keys($flashStack);
     }
     foreach ($names as $name) {
         if (isset($flashStack[$name])) {
             $flashMessages[$name] = $flashStack[$name];
             unset($flashStack[$name]);
         }
     }
     if (empty($flashStack)) {
         $session->delete("FlashStack");
     } else {
         $session->set("FlashStack", $flashStack);
     }
     return $flashMessages;
 }
Example #3
0
 /**
  * Return current User
  *
  * @return \CoreTyson\Auth\User | null
  */
 public function getUser()
 {
     $session = Session::getInstance();
     if ($this->_user == null and $session->has("Auth/user")) {
         $this->_user = $session->get("Auth/user");
     }
     return $this->_user;
 }
Example #4
0
 /**
  * Handle an incoming request.
  *
  * @param  Request $request
  * @param  \Closure $next
  * @return Response
  */
 public function handle(Request $request, Closure $next) : Response
 {
     $result = $this->_sentinel->authenticateFromRequest($request);
     if ($result instanceof User) {
         $this->_setUser($result);
     }
     if (!$this->_isAllowed($request->param('action'))) {
         if (!$this->isAuthenticated()) {
             Session::getInstance()->set("Auth/redirect", $request->url);
             if ($request->is('ajax')) {
                 $response = new Response();
                 $response->statusCode(401);
                 return $response;
             } else {
                 return Response::redirect(Configuration::getInstance()->get("Auth/loginUrl", "/"));
             }
         }
         if (!$this->_sentinel->isAuthorized($result, $request)) {
             if ($request->is('ajax')) {
                 $response = new Response();
                 $response->statusCode(403);
                 return $response;
             } else {
                 return Response::redirect($request->referer());
             }
         }
     }
     return $next($request);
 }