/** * Callback que se ejecuta antes de los métodos de todos los controladores */ protected final function initialize() { /** * Si el método de entrada es ajax, el tipo de respuesta es sólo la vista */ if (Input::isAjax()) { View::template(null); } /** * Verifico que haya iniciado sesión */ if (!MkcAuth::isLogged()) { //Verifico que no genere una redirección infinita if ($this->controller_name != 'login' && ($this->action_name != 'entrar' && $this->action_name != 'salir')) { MkcMessage::warning('No has iniciado sesión o ha caducado.'); //Verifico que no sea una ventana emergente if ($this->module_name == 'reporte') { View::error(); //TODO: crear el método error() } else { MkcRedirect::toLogin('sistema/login/entrar/'); } return false; } } else { if (MkcAuth::isLogged() && $this->controller_name != 'login') { $acl = new MkcAcl(); //Cargo los permisos y templates if (APP_UPDATE && Session::get('perfil_id') != Perfil::SUPER_USUARIO) { //Solo el super usuario puede hacer todo if ($this->module_name != 'dashboard' && $this->controller_name != 'index') { $msj = 'Estamos en labores de actualización y mantenimiento.'; $msj .= '<br />'; $msj .= 'El servicio se reanudará dentro de ' . APP_UPDATE_TIME; if (Input::isAjax()) { View::update(); } else { MkcMessage::info($msj); MkcRedirect::to("dashboard"); } return FALSE; } } if (!$acl->check(Session::get('perfil_id'))) { MkcMessage::error('Tu no posees privilegios para acceder a <b>' . Router::get('route') . '</b>'); Input::isAjax() ? View::ajax() : View::select(NULL); return false; } if (!defined('SKIN')) { define('SKIN', Session::get('tema')); } } } }
/** * Método para iniciar sesión */ public function entrar() { if (Input::hasPost('login') && Input::hasPost('password') && Input::hasPost('mode')) { if (Usuario::setSession('open', Input::post('login'), Input::post('password'))) { return MkcRedirect::to('dashboard/'); } } else { if (MkcAuth::isLogged()) { return MkcRedirect::to('dashboard/'); } } }
public function index() { if (Session::get('perfil_id') != Perfil::SUPER_USUARIO) { if (Session::get('perfil_id') != Perfil::OPERADOR) { MkcRedirect::to('dashboard/cliente'); } else { MkcRedirect::to('dashboard/operador'); } } else { MkcRedirect::to('dashboard/admin'); } }
/** * Método principal */ public function index() { $usuario = new Usuario(); if (!$usuario->getInformacionUsuario(Session::get('id'))) { MkcMessage::get('id_no_found'); return MkcRedirect::to('dashboard'); } $perfil = $usuario->perfil; $app_ajax_old = $usuario->app_ajax; if (Input::hasPost('usuario')) { if (MkcSecurity::isValidKey(Input::post('usuario_id_key'), 'form_key')) { ActiveRecord::beginTrans(); //Guardo la persona $persona = Persona::setPersona('update', Input::post('persona'), array('id' => $usuario->persona_id)); if ($persona) { $usuario = Usuario::setUsuario('update', Input::post('usuario'), array('persona_id' => $persona->id, 'repassword' => Input::post('repassword'), 'oldpassword' => Input::post('oldpassword'), 'id' => $usuario->id, 'login' => $usuario->login, 'sucursal_id' => $usuario->sucursal_id, 'perfil_id' => $usuario->perfil_id)); if ($usuario) { ActiveRecord::commitTrans(); MkcMessage::valid('El usuario se ha actualizado correctamente.'); if ($app_ajax_old != $usuario->app_ajax) { Session::set('app_ajax', $usuario->app_ajax); if (APP_AJAX) { View::redirect(PUBLIC_PATH . 'sistema/mi_cuenta/'); } else { MkcRedirect::to('sistema/mi_cuenta'); } } $usuario->perfil = $perfil; $usuario->fotografia = $persona->fotografia; } } else { ActiveRecord::rollbackTrans(); } } } $this->temas = MkcUtils::getFolders(dirname(APP_PATH) . '/public/css/backend/themes/'); $this->usuario = $usuario; $this->page_title = 'Actualizar mis datos'; }