/**
  * Contiene la funcionalidad de control sobre el usuario.
  * @param base_model $obj_model Instancia de un modelo
  * @param string $str_username Identificador de usuario
  * @param string $str_userpswd Clave de acceso a validar.
  * @return boolean TRUE si tiene acceso, FALSE si no.
  */
 function processUser(&$obj_model, $str_username, $str_userpswd)
 {
     $ret_val = false;
     if (isset($str_username) && $str_username != '') {
         if (isset($str_userpswd) && $str_userpswd != '') {
             include_once Util::app_Path("common/control/classes/miguel_userinfo.class.php");
             if (miguel_UserInfo::hasAccess($obj_model, $str_username, $str_userpswd)) {
                 if (miguel_UserInfo::isLogged($obj_model, $str_username)) {
                     if ($this->getSessionElement('userinfo', 'name') == $str_username) {
                         //Control sobre re-login
                         $ret_val = true;
                     } else {
                         $arr_userinfo = miguel_UserInfo::getInfo($obj_model, $str_username);
                         $arr_userinfo['isadmin'] = miguel_UserInfo::isAdmin($obj_model, $str_username);
                         $this->setSessionArray('userinfo', $arr_userinfo);
                         $ok = miguel_UserInfo::setLogin($obj_model, $str_username);
                         $ret_val = true;
                     }
                 }
             }
             //Debug::oneVar($_SESSION, __FILE__, __LINE__);
         }
     }
     return $ret_val;
 }
 function prepareTheme($theme)
 {
     include_once Util::base_Path('include/classes/theme.class.php');
     //Comprobamos si el tema existe
     if (!Theme::existTheme($theme)) {
         $theme = Session::getContextValue('theme');
     }
     //Configuración theme
     $file = MIGUELBASE_THEME_DIR . $theme . '/theme.xml';
     if (file_exists($file)) {
         miguel_UserInfo::_processXMLInitData($file);
     } else {
         $this->_setError("miguel_UserInfo:: el tema visual no está configurado");
     }
 }
 function processPetition()
 {
     $this->setMessage('Administración');
     $user_id = $this->getSessionElement('userinfo', 'user_id');
     if (isset($user_id) && $user_id != '') {
         $user = $this->getSessionElement('userinfo', 'user_alias');
         if (miguel_UserInfo::isAdmin(&$this->obj_data, $user)) {
             $this->addNavElement(Util::format_URLPath('admin/index.php'), 'Administración');
             if ($this->issetViewVariable('admin_screen')) {
                 $str_screen = $this->getViewVariable('admin_screen');
             } else {
                 if ($this->issetViewVariable('id')) {
                     $str_screen = $this->getViewVariable('id');
                 }
             }
             switch ($str_screen) {
                 case 'users':
                     //Procesar pantalla "Gestión de usuarios"
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=users'), 'Gestión de usuarios');
                     $this->setMessage('Gestión de usuarios');
                     break;
                 case 'courses':
                     //Procesar pantalla "Gestión de cursos"
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=courses'), 'Gestión de cursos');
                     $this->setMessage('Gestión de cursos');
                     break;
                 case 'petitions':
                     //Procesar pantalla "Procesar peticiones"
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=petitions'), 'Procesar peticiones');
                     $this->setMessage('Procesar las peticiones al administrador');
                     break;
                 case 'sysconfig':
                     //Procesar pantalla "Configuración del sistema"
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=sysconfig'), 'Configuración del sistema');
                     $this->setMessage('Configuración del sistema');
                     break;
                 case 'add_user':
                     //Procesar pantalla "Dar de alta usuarios" (en "Gestión de usuarios")
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=users'), 'Gestión de usuarios');
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=add_user'), 'Altas');
                     $this->setMessage('Dar de alta usuarios');
                     $this->_processAddUser();
                     break;
                 case 'del_user':
                     //Procesar pantalla "Dar de baja usuarios" (en "Gestión de usuarios")
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=users'), 'Gestión de usuarios');
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=del_user'), 'Bajas');
                     $this->setMessage('Dar de baja usuarios');
                     $this->_processDelUser();
                     break;
                 case 'edit_user_profile':
                     //Procesar pantalla "Editar perfil de un usuario" (en "Gestión de usuarios")
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=users'), 'Gestión de usuarios');
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=edit_user_profile'), 'Editar');
                     $this->setMessage('Editar perfil de un usuario');
                     $this->_processEditUserProfile();
                     break;
                 case 'add_user_list':
                     //Procesar pantalla "Importar lista de usuarios" (en "Gestión de usuarios")
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=users'), 'Gestión de usuarios');
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=add_user_list'), 'Importar lista de usuarios');
                     $this->setMessage('Importar una lista de usuarios');
                     $this->_processAddUserList();
                     break;
                 case 'user_list':
                     //Procesar pantalla "Lista de usuarios" (en "Gestión de usuarios")
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=users'), 'Gestión de usuarios');
                     $this->addNavElement(Util::format_URLPath('admin/index.php', 'admin_screen=user_list'), 'Lista de usuarios');
                     $this->setMessage('Lista de usuarios');
                     $this->_processUserList();
                     break;
                     //case 'add_course':  //Procesar pantalla "Crear un curso" (en "Gestión de cursos")
                     //  $this->setMessage('Crear un curso');
                     //  $this->_processAddCourse();
                     //  break;
                     //case 'course_list':  //Procesar pantalla "Lista de cursos" (en "Gestión de cursos")
                     //  $this->setMessage('Lista de cursos');
                     //  $this->_processCourseList();
                     //  break;
                     //case 'del_course':  //Procesar pantalla "Borrar un curso" (en "Gestión de cursos")
                     //  $this->setMessage('Borrar curso');
                     //  $this->_processDelCourse();
                     //  break;
                     //case 'edit_course':  //Procesar pantalla "Editar un curso" (en "Gestión de cursos")
                     //  $this->setMessage('Editar curso');
                     //  $this->_processEditCourse();
                     //  break;
                 //case 'add_course':  //Procesar pantalla "Crear un curso" (en "Gestión de cursos")
                 //  $this->setMessage('Crear un curso');
                 //  $this->_processAddCourse();
                 //  break;
                 //case 'course_list':  //Procesar pantalla "Lista de cursos" (en "Gestión de cursos")
                 //  $this->setMessage('Lista de cursos');
                 //  $this->_processCourseList();
                 //  break;
                 //case 'del_course':  //Procesar pantalla "Borrar un curso" (en "Gestión de cursos")
                 //  $this->setMessage('Borrar curso');
                 //  $this->_processDelCourse();
                 //  break;
                 //case 'edit_course':  //Procesar pantalla "Editar un curso" (en "Gestión de cursos")
                 //  $this->setMessage('Editar curso');
                 //  $this->_processEditCourse();
                 //  break;
                 default:
                     break;
             }
             $this->setSessionElement('admin_screen', $str_screen);
             $this->setViewVariable('admin_screen', $str_screen);
         } else {
             $this->setViewVariable('admin_error', 'no_auth');
             $this->setViewClass('miguel_VAdmin');
             return false;
         }
     } else {
         $this->setViewVariable('admin_error', 'no_logged');
         $this->setViewClass('miguel_VAdmin');
         return false;
     }
 }