public ActionResult ReportInappropriatePost_GET(int postId, string returnUrl ) { if (!_orchardServices.WorkContext.HttpContext.User.Identity.IsAuthenticated) return new HttpUnauthorizedResult(T("You must be logged in to report an inappropriate post.").ToString()); if (!_orchardServices.Authorizer.Authorize(Permissions.CreateThreadsAndPosts, T("You require permission to post to the forums in order to report posts as inappropriate."))) return new HttpUnauthorizedResult(); var userId = _orchardServices.WorkContext.CurrentUser.Id; ReportPostService.CreatePostResultEnum reportedAccepted = _reportPostService.PostReportStatus(postId, userId); //setup a model just in case there is more info to be added later ReportInappropriatePostConfirmationViewModel model = new ReportInappropriatePostConfirmationViewModel{ ReturnUrl = returnUrl, PostId = postId, ReportSubmittedResult = reportedAccepted }; return View(model); }
public ActionResult ReportInappropriatePost_POST(ReportInappropriatePostConfirmationViewModel model) { if (!_orchardServices.WorkContext.HttpContext.User.Identity.IsAuthenticated) return new HttpUnauthorizedResult(T("You must be logged in to report an inappropriate post.").ToString()); if (!_orchardServices.Authorizer.Authorize(Permissions.CreateThreadsAndPosts, T("You do not have permissions to post on the forums and therefore cannot report posts."))) return new HttpUnauthorizedResult(); var userId = _orchardServices.WorkContext.CurrentUser.Id; var post = _postService.Get( model.PostId, VersionOptions.Published); if (model.ReasonReported.Length > 2048) { this.ModelState.AddModelError("ReasonReported", T("The reason cannot be longer than 2048 characters. You entered {0} characters.", model.ReasonReported.Length).ToString()); return View(model); } if (post != null) { var reportedPostRecord = new ReportedPostRecord { PostId = model.PostId, IsResolved = false, PostedByUserId = post.As<CommonPart>().Owner.Id, ReasonReported = model.ReasonReported, ReportedByUserId = userId, ResolvedByUserId = 0, }; _reportPostService.CreateReport(reportedPostRecord); } return RedirectToActionPermanent("InappropriatePostReportedSuccessfully", new { returnUrl = model.ReturnUrl }); }