Example #1
0
 public function loginAction()
 {
     $this->flashMessenger = $this->_helper->FlashMessenger;
     $this->view->messages = $this->flashMessenger->getMessages();
     //        if (Zend_Registry::getInstance()->get('auth')->hasIdentity()) {
     //            $this->_redirect('/painel');
     //        }
     // action body
     if ($this->getRequest()->isPost()) {
         $email = $this->_request->getPost('email');
         $senha = $this->_request->getPost('password');
         $url = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri();
         try {
             $_serviceAuth = new AuthService();
             $result = $_serviceAuth->login($email, $senha);
             if (isset($result['error'])) {
                 //login invalido
                 $this->_helper->flashMessenger->addMessage('Login ou senha incorreta');
                 $this->_redirect($url, array('prependBase' => false));
             } else {
                 //login válido
                 $usuario = new Usuarioacl();
                 $usuario->setFullName($result['name']);
                 $usuario->setEmail($result['email']);
                 $usuario->setRoleId($result['user_type']);
                 $usuario->setUnitId($result['unit_id']);
                 $usuario->setRoleLabel($result['user_type']);
                 $usuario->setId($result['id']);
                 $usuario->setResources($result['resources']);
                 $auth = Zend_Auth::getInstance();
                 $storage = $auth->getStorage();
                 $storage->write($usuario);
                 $seconds = 10 * 365 * 24 * 60 * 60;
                 Zend_Session::rememberMe($seconds);
                 $this->_redirect($url, array('prependBase' => false));
             }
         } catch (Exception $exc) {
             //                echo $exc->getTraceAsString();
             throw $exc;
         }
     }
 }
Example #2
0
 public function preDispatch(Zend_Controller_Request_Abstract $request)
 {
     //fazendo funcionar a autenticação por modulos
     if ($request->getModuleName() == 'default') {
         $controller2 = $request->getControllerName();
     } else {
         $controller2 = $request->getModuleName();
         //.':'.$request->getControllerName();
     }
     //SEO URLs
     $action = $request->getActionName();
     //         if($controller2 == 'cursos'){
     //             //verificar se destino é um curso
     //             $_serviceCourse = new CourseService();
     //             $course = $_serviceCourse->getByFriendlyName($action);
     //             if ($course['friendly_name'] == $action) {
     //                 $request->setParams(array('curso' => $action));
     //                 $request->setActionName('detalhes');
     //             }
     //         }else if($controller2 == 'noticias'){
     //             //verificar se é uma noticia
     //             $_serviceNews = new NewsService();
     //             $news = $_serviceNews->getBySlug($action);
     //             if ($news['friendly_title'] == $action) {
     //                 $request->setParams(array('title' => $action));
     //                 $request->setActionName('detalhes');
     //             }
     //         }
     //         if(!$this->_acl->has($controller2)){
     //             $_serviceUnits = new UnitService();
     //             $unit = $_serviceUnits->getBySlug($controller2);
     //             if ($unit['friendly_title'] == $controller2) {
     //                 $request->setControllerName('unidades');
     //                 $request->setParams(array('unidade' => $controller2));
     //                 $request->setActionName('detalhes');
     //                 $controller2 = 'unidades';
     //             }
     //         }
     if (!$this->_auth->hasIdentity()) {
         //SETAR O USUARIO COMO GUEST CASO ELE NAO ESTEJA LOGADO
         $auth = Zend_Auth::getInstance();
         $usuario = new Usuarioacl();
         $usuario->setRoleId('guest');
         $usuario->setRoleLabel('guest');
         $storage = $auth->getStorage();
         $storage->write($usuario);
         $controller = $request->getControllerName();
         $action = $request->getActionName();
         $module = $request->getModuleName();
     }
     if (!$this->_unknowRoute($controller2)) {
         $controller = $this->_forbiddenRoute['controller'];
         $action = $this->_forbiddenRoute['action'];
         $module = $this->_forbiddenRoute['module'];
     }
     if (!$this->_isAuthorized($controller2, $request->getActionName())) {
         if ($controller2 == 'dashboard') {
             $controller = 'auth';
             $action = 'login';
             $module = 'dashboard';
         } else {
             $controller = $this->_notLoggedRoute['controller'];
             $action = $this->_notLoggedRoute['action'];
             $module = $this->_notLoggedRoute['module'];
         }
     } else {
         $user = $this->_auth->getIdentity();
         if ($controller2 == 'dashboard' && $user->getRoleLabel() == 'dashboard') {
             $controller = $request->getControllerName();
             $action = $request->getActionName();
             $module = $request->getModuleName();
         } else {
             if ($controller2 == 'gestao' && $user->getRoleLabel() == 'gestao') {
                 $controller = $request->getControllerName();
                 $action = $request->getActionName();
                 $module = $request->getModuleName();
             } else {
                 $controller = $request->getControllerName();
                 $action = $request->getActionName();
                 $module = $request->getModuleName();
             }
         }
     }
     $request->setControllerName($controller);
     $request->setActionName($action);
     $request->setModuleName($module);
 }