. */ namespace SP\Mvc\Controller; use SP\Core\Session\Session; use SP\Http\JsonResponse; use SP\Http\Request; use SP\Util\Checks; use SP\Util\Json; use SP\Util\Util; /** * Trait ControllerTrait * * @package SP\Mvc\Controller */ trait ControllerTrait { /** * @return string */ protected function getControllerName() { $class = static::class; return substr($class, strrpos($class, '\\') + 1, -strlen('Controller')) ?: ''; } /** * Comprobar si la sesión está activa * * @param Session $session */ protected function checkLoggedInSession(Session $session) { if (!$session->isLoggedIn()) { if (Checks::isJson()) { $JsonResponse = new JsonResponse(); $JsonResponse->setDescription(__u('La sesión no se ha iniciado o ha caducado')); $JsonResponse->setStatus(10); Json::returnJson($JsonResponse); } else { Util::logout(); } } } /** * @param Session $session */ protected function checkSecurityToken(Session $session) { $sk = Request::analyzeString('sk'); $sessionKey = $session->getSecurityKey(); if (!$sk || (null !== $sessionKey && $sessionKey !== $sk)) { $this->invalidAction(); } } /** * Acción no disponible */ protected function invalidAction() { Json::returnJson((new JsonResponse())->setDescription(__u('Acción Inválida'))); } }