// GET: OrdenComment/Create public ActionResult Create(int id) { if (Convert.ToString(Session["userId"]) != "") { var model = new OrdenComment(); var ids = (int)Session["userId"]; model.UsersId = (int)Session["userId"]; model.WorkOrdenId = id; model.dateComment = DateTime.Now; return(PartialView("Create", model)); } else { return(RedirectToAction("Index", "Home")); } }
public ActionResult Create(OrdenComment model) { try { model.UsersId = (int)Session["userId"]; // TODO: Add insert logic here if (ModelState.IsValid) { context.OrdenComment.Add(model); context.SaveChanges(); return(RedirectToAction("Index", "Home")); } else { return(PartialView("Index", "Area_Orden")); } } catch { return(View()); } }
public override void OnActionExecuting(ActionExecutingContext context) { var sid = context.HttpContext.User.FindFirst(ClaimTypes.Sid).Value; var role = context.HttpContext.User.FindFirst(ClaimTypes.Role).Value; string idencabezado; try { idencabezado = context.HttpContext.Request.RouteValues["id"].ToString(); } catch (NullReferenceException err) { idencabezado = null; } var _repository = context.HttpContext.RequestServices.GetService(TypeOfRepository); var ActionParameter = context.ActionArguments; if (role == Enum.GetName(typeof(RoleType), RoleType.Administrator) || role == Enum.GetName(typeof(RoleType), RoleType.Programmer)) { return; } if (_repository is IRepository <Usuario> ) { var _userRepository = _repository as IRepository <Usuario>; if (!string.IsNullOrEmpty(idencabezado)) { if (sid == idencabezado) { return; } else { context.Result = new UnauthorizedObjectResult(""); } } else if (ActionParameter.Count > 0) { var parameter = context.ActionArguments["entity"] as UsuarioDto; if (parameter.Id.ToString() != sid) { context.Result = new UnauthorizedObjectResult(""); } } } if (_repository is IRepository <Orden> ) { var _ordenRepository = _repository as IRepository <Orden>; if (!string.IsNullOrEmpty(idencabezado)) { Orden orden = _ordenRepository.Find(o => o.IdUser.ToString() == idencabezado); if (orden == null) { return; } if (sid == orden.IdUser.ToString()) { return; } else { context.Result = new UnauthorizedObjectResult("No tienes autorizacion para modificar esta entidad!"); } } else if (ActionParameter.Count > 0) { var parameter = context.ActionArguments["entity"] != null ? context.ActionArguments["entity"] as OrdenDto : context.ActionArguments["administer"] as OrdenDto; Orden orden = _ordenRepository.Find(o => o.IdUser == parameter.Id); if (orden.IdUser != parameter.IdUser) { context.Result = new UnauthorizedObjectResult("No puedes modificar el propietario de una entidad!"); } if (parameter.IdUser.ToString() != sid) { context.Result = new UnauthorizedObjectResult("No tienes autorizacion para modificar esta entidad!"); } } } if (_repository is IRepository <OrdenComment> ) { var _ordenRepository = _repository as IRepository <OrdenComment>; if (!string.IsNullOrEmpty(idencabezado)) { OrdenComment orden = _ordenRepository.Find(o => o.IdUser.ToString() == idencabezado); if (orden == null) { return; } if (sid == orden.IdUser.ToString()) { return; } else { context.Result = new UnauthorizedObjectResult("No tienes autorizacion para modificar esta entidad!"); } } else if (ActionParameter.Count > 0) { var parameter = context.ActionArguments["entity"] != null ? context.ActionArguments["entity"] as OrdenCommentDto : context.ActionArguments["administer"] as OrdenCommentDto; OrdenComment orden = _ordenRepository.Find(o => o.IdUser == parameter.Id); if (orden.IdUser != parameter.IdUser) { context.Result = new UnauthorizedObjectResult("No puedes modificar el propietario de una entidad!"); } if (parameter.IdUser.ToString() != sid) { context.Result = new UnauthorizedObjectResult("No tienes autorizacion para modificar esta entidad!"); } } } }