コード例 #1
0
        public ActionResult Login(AuthenticationCLS credentials)
        {
            //Valida los campos del modelo de las credenciales
            if (!ModelState.IsValid)
            {
                return(Json(new
                {
                    Status = 2,
                    Message = "Invalid",
                    AjaxResponse = RenderRazorViewToString("_AuthenticateCredentials", credentials)
                }));
            }
            //Valida que la autenticacion sea correcta
            if (!util.AuthenticateCredentials(credentials.email, credentials.password))
            {
                credentials.message = "Correo y/o contraseña incorrectos";
                return(Json(new
                {
                    Status = 3,
                    Message = "Error",
                    AjaxResponse = RenderRazorViewToString("_AuthenticateCredentials", credentials)
                }));
            }
            Usuarios user_db;

            //obtiene el usario segun la contrasena y el correo
            using (var db = new DB_PAAD_IADEntities())
            {
                user_db = db.Usuarios.Where(p => p.email == credentials.email && p.password == credentials.password).FirstOrDefault();
            }
            if (user_db.tipo_usuario == 1)
            {
                //Obtiene al docente segun el correo
                using (var db = new DB_PAAD_IADEntities())
                {
                    Docentes docente = db.Docentes.Where(p => p.correo == user_db.email).FirstOrDefault();
                    //Crea una session de usuario
                    Session["docente"] = docente;
                }
            }
            else if (user_db.tipo_usuario == 2)
            {
                //Obtiene al administrativo segun el correo
                using (var db = new DB_PAAD_IADEntities())
                {
                    Administrativos admin = db.Administrativos.Where(p => p.correo == user_db.email).FirstOrDefault();
                    //Crea una session de usuario
                    Session["administ"] = admin;
                }
            }
            return(Json(new
            {
                Status = 1,
                Message = "Success"
            }));
        }
コード例 #2
0
        /* Esta accion se llama cuando le da al boton de aceptar en el modal de credenciales
         * Esta funcion sirve para cambiar el campo isdirector de la tabla de docentes de una cuenta a otra
         * Recibe las credenciales y el id del docente que sera el nuevo director
         * Regresa un json con el estado de la respuesta, el mensaje de respuesta, y una vista parcial en string */
        public ActionResult ChangeSubdirector(AuthenticationCLS credentials, int id_docente)
        {
            //Valida los campos del modelo de las credenciales
            if (!ModelState.IsValid)
            {
                return(Json(new
                {
                    Status = 2,
                    Message = "Invalid",
                    AjaxResponse = RenderRazorViewToString("_AuthenticateCredentials", credentials)
                }));
            }
            //Obtiene los datos de la sesion del usuario
            Administrativos doc = ((Administrativos)Session["administ"]);

            //Valida que la autenticacion sea correcto, que el correo de la autenticacion se el mismo que el de la sesion y que se tengan los permisos necesario para realizar esa accion
            if (!util.AuthenticateCredentials(credentials.email, credentials.password) || doc.rol != 2 || doc.correo != credentials.email)
            {
                credentials.message = "Correo y/o contraseña incorrectos";
                return(Json(new
                {
                    Status = 3,
                    Message = "Error",
                    AjaxResponse = RenderRazorViewToString("_AuthenticateCredentials", credentials)
                }));
            }
            using (var db = new DB_PAAD_IADEntities())
            {
                Docentes docente          = db.Docentes.Where(p => p.id_docente == id_docente).FirstOrDefault();
                bool     isDirectorOrNull = docente != null?util.IsDirector(docente.id_docente) : true;

                //Si el docente no se encutra o ya es director regresa un mensaje de error, si no lo vuelve director
                if (isDirectorOrNull)
                {
                    credentials.message = "Cuenta no encontrada o esta cuenta ya es director";
                    return(Json(new
                    {
                        Status = 3,
                        Message = "Error",
                        AjaxResponse = RenderRazorViewToString("_AuthenticateCredentials", credentials)
                    }));
                }
                Administrativos director = db.Administrativos.Where(p => p.rol == 2).FirstOrDefault();
                if (director != null)
                {
                    director.docente = docente.id_docente;
                }
                db.SaveChanges();
            }
            return(Json(new
            {
                Status = 1,
                Message = "Success"
            }));
        }
コード例 #3
0
        /* Esta accion aplica las acciones sobre el paad como rechazar paad, aprobar paad, aprobar modificacion y rechazar modificacion
         * Recibe las credenciales a autenticar, el id del padd, la accion a realizar y el mensaje de rechazo de manera opcional
         * devuelve un json con el estado de la respuesta, el mensaje de respuesta, y una vista parcial en string */
        public ActionResult ApplyActionPAAD(AuthenticationCLS credentials, int id_paad, int action_paad, string reject_message)
        {
            //Valida los campos del modelo de las credenciales
            if (!ModelState.IsValid)
            {
                return(Json(new
                {
                    Status = 2,
                    Message = "Invalid",
                    AjaxResponse = RenderRazorViewToString("_AuthenticateCredentials", credentials)
                }));
            }
            //Obtiene los datos de la sesion del usuario
            Administrativos doc = ((Administrativos)Session["administ"]);

            //Valida que la autenticacion sea correcta, que el correo de la autenticacion se el mismo que el de la sesion y que la cuenta tenga el nivel de permisos necesarios
            if (!util.AuthenticateCredentials(credentials.email, credentials.password) || doc.rol < 2 || doc.correo != credentials.email)
            {
                credentials.message = "Correo y/o contraseña incorrectos";
                return(Json(new
                {
                    Status = 3,
                    Message = "Error",
                    AjaxResponse = RenderRazorViewToString("_AuthenticateCredentials", credentials)
                }));
            }
            using (var db = new DB_PAAD_IADEntities())
            {
                Mensajes mssg = null;
                PAADs    paad = db.PAADs.Where(p => p.id_paad == id_paad).FirstOrDefault();
                bool     isNotDirectorOrNull = paad != null ? !util.IsDirector(paad.docente) : true;
                //Valida que el paad sea del director
                if (isNotDirectorOrNull)
                {
                    credentials.message = "Correo y/o contraseña incorrectos";
                    return(Json(new
                    {
                        Status = 3,
                        Message = "Error",
                        AjaxResponse = RenderRazorViewToString("_AuthenticateCredentials", credentials)
                    }));
                }
                else if (action_paad == 1)
                {
                    //Acciones para el caso de Rechazar PAAD
                    paad.estado        = 1;
                    paad.firma_docente = null;
                    db.Mensajes.Add(new Mensajes
                    {
                        paad    = paad.id_paad,
                        tipo    = 1,
                        mensaje = reject_message
                    });
                }
                else if (action_paad == 2)
                {
                    //Acciones para el caso de Aprobar PAAD
                    paad.estado         = 3;
                    paad.firma_director = Guid.NewGuid().ToString("N");
                }
                else if (action_paad == 3)
                {
                    //Acciones para el caso de Rechazar Solicitud
                    paad.estado = 3;
                    db.Mensajes.Add(new Mensajes
                    {
                        paad    = paad.id_paad,
                        tipo    = 3,
                        mensaje = reject_message
                    });
                    mssg = db.Mensajes.Where(p => p.paad == id_paad && p.tipo == 2).FirstOrDefault();
                }
                else if (action_paad == 4)
                {
                    //Acciones para el caso de Aprobar Solicitud
                    paad.estado         = 1;
                    paad.firma_docente  = null;
                    paad.firma_director = null;
                    mssg = db.Mensajes.Where(p => p.paad == id_paad && p.tipo == 2).FirstOrDefault();
                }
                //Si hay mensajes que borrar los elimina, por lo generar por cada paad solo hay un mensaje activo que mostrar, en caso de eliminar varios al mismo tiempo se debera modificar.
                if (mssg != null)
                {
                    db.Mensajes.Remove(mssg);
                }
                db.SaveChanges();
            }
            return(Json(new
            {
                Status = 1,
                Message = "Success"
            }));
        }