/* Esta accion se llama cuando login se ha ejecutado correctamente * Esta accion redirige al home correspondiente del usuario * No recibe argumentos * Regresa una redireccion hacia una accion*/ public ActionResult RedirectToHome() { Docentes doc = (Docentes)Session["docente"]; Administrativos admin = (Administrativos)Session["administ"]; if (doc != null) { return(RedirectToAction("Home", "Docente")); } if (admin != null) { if (admin.rol == 1) { return(RedirectToAction("Home", "Coordinador")); } if (admin.rol == 2) { return(RedirectToAction("Home", "Subdirector")); } if (admin.rol == 3) { return(RedirectToAction("Home", "Director")); } } return(RedirectToAction("Login")); }
/* Esta accion recupera todos los paads activos de la base de datos segun carrera del coordinador * Recibe de forma opcional el id del estado si vienen vacios se omiten en el filtrado * Regresa una lista con los modelos de los paad*/ public List <RegistroIAD> GetActiveIADs(int state = 0) { Administrativos doc = (Administrativos)Session["administ"]; List <RegistroIAD> list = null; using (var db = new DB_PAAD_IADEntities()) { list = (from docente in db.Docentes join iad in db.IADs on docente.id_docente equals iad.docente into gpaad from paad in gpaad.DefaultIfEmpty() join estado in db.Estados on paad.estado equals estado.id_estado into gestado from estado in gestado.DefaultIfEmpty() where state > 0 && !(estado == null && state == 1) ? estado.id_estado == state && estado.id_estado != 3 : estado.id_estado != 3 join carrera in db.Carreras on docente.carrera equals carrera.id_carrera where carrera.id_carrera == doc.carrera from periodo in db.Periodos where periodo.activo == true select new RegistroIAD { id_iad = paad != null ? paad.id_iad : 0, estado = estado != null ? estado.estado : (from e in db.Estados where e.id_estado == 1 select e.estado).FirstOrDefault(), estado_valor = estado != null ? estado.id_estado : 1, periodo = periodo.periodo, carrera = carrera.carrera, numero_empleado = docente.numero_empleado, nombre_docente = docente.nombre, }).ToList(); } return(list); }
/* Esta accion recupera todos los paads aprobados de la base de datos segun la carrera del coordinador * Recibe de forma opcional el id del periodo y el id de la carrera, si vienen vacios se omiten en el filtrado * Regresa una lista con los modelos de los paad*/ public List <RegistroIAD> GetRecordIADs(int period = 0) { Administrativos doc = (Administrativos)Session["administ"]; List <RegistroIAD> list = null; using (var db = new DB_PAAD_IADEntities()) { list = (from iad in db.IADs join estado in db.Estados on iad.estado equals estado.id_estado where estado.id_estado == 3 join periodo in db.Periodos on iad.periodo equals periodo.id_periodo where period > 0 ? periodo.id_periodo == period : true join carrera in db.Carreras on iad.carrera equals carrera.id_carrera where carrera.id_carrera == doc.carrera join docente in db.Docentes on iad.docente equals docente.id_docente select new RegistroIAD { id_iad = iad.id_iad, estado = estado.estado, periodo = periodo.periodo, carrera = carrera.carrera, numero_empleado = docente.numero_empleado, nombre_docente = docente.nombre }).ToList(); } return(list); }
/* Esta funcion llena el modelo de InfoPAADCLS con la informacion de la base de datos * Recibe el id del paad * Regresa el modelo lleno*/ public InfoIADCLS GetInfoIAD(int id) { InfoIADCLS info = new InfoIADCLS(); Administrativos doc = (Administrativos)Session["administ"]; using (var db = new DB_PAAD_IADEntities()) { info = (from admin in db.Administrativos where admin.rol == 3 from iad in db.IADs where iad.id_iad == id && iad.estado != 1 join estado in db.Estados on iad.estado equals estado.id_estado join periodo in db.Periodos on iad.periodo equals periodo.id_periodo join docente in db.Docentes on iad.docente equals docente.id_docente select new InfoIADCLS { id_iad = iad.id_iad, status_value = iad.estado, status_name = estado.estado, active = periodo.activo, isdirector = iad.docente == admin.docente ? true : false }).FirstOrDefault(); } return(info); }
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" })); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { Administrativos admin = (Administrativos)HttpContext.Current.Session["administ"]; if (admin == null || admin.rol != 1) { filterContext.Result = new RedirectResult("~/Login/RedirectToHome"); } base.OnActionExecuting(filterContext); }
/* 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" })); }
private void DatosAIniciar() { if (manejadorAdministrativos.Read.Count < 1) { Administrativos administrativos = new Administrativos() { Contrasenia = "Admin", Correo = "Admin" }; if (!manejadorAdministrativos.Create(administrativos)) { this.Close(); } } }
/* Esta funcion llena el modelo de InfoPAADCLS con la informacion de la base de datos * Recibe el id del paad * Regresa el modelo lleno*/ public InfoIADCLS GetInfoIAD(int id) { InfoIADCLS info = new InfoIADCLS(); Administrativos doc = (Administrativos)Session["administ"]; using (var db = new DB_PAAD_IADEntities()) { info = (from iad in db.IADs where iad.id_iad == id && iad.estado != 1 join estado in db.Estados on iad.estado equals estado.id_estado join periodo in db.Periodos on iad.periodo equals periodo.id_periodo select new InfoIADCLS { id_iad = iad.id_iad, status_value = iad.estado, status_name = estado.estado, active = periodo.activo }).FirstOrDefault(); } return(info); }
public bool Update(Administrativos EntidadModificada) { return(repositorio.Update(EntidadModificada)); }
public bool Create(Administrativos Entidad) { return(repositorio.Create(Entidad)); }
/* 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" })); }