// NOTE: Intentionally NOT requiring authentication public virtual ActionResult ContactOwners(string id) { var package = packageSvc.FindPackageRegistrationById(id); if (package == null) { return(PackageNotFound(id)); } var model = new ContactOwnersViewModel { PackageId = package.Id, Owners = package.Owners.Where(u => u.EmailAllowed) }; if (Request.IsAuthenticated) { var user = userSvc.FindByUsername(HttpContext.User.Identity.Name); if (user.Confirmed) { model.ConfirmedUser = true; } } return(View("~/Views/Packages/ContactOwners.cshtml", model)); }
public virtual ActionResult ContactOwners(string id, ContactOwnersViewModel contactForm) { if (!ModelState.IsValid) { return(ContactOwners(id)); } var package = _packageService.FindPackageRegistrationById(id); if (package == null) { return(HttpNotFound()); } var user = _userService.FindByUsername(HttpContext.User.Identity.Name); var fromAddress = new MailAddress(user.EmailAddress, user.Username); _messageService.SendContactOwnersMessage( fromAddress, package, contactForm.Message, Url.Action(MVC.Users.Edit(), protocol: Request.Url.Scheme)); string message = String.Format(CultureInfo.CurrentCulture, "Your message has been sent to the owners of {0}.", id); TempData["Message"] = message; return(RedirectToAction(MVC.Packages.DisplayPackage(id, null))); }
public virtual ActionResult ContactOwners(string id, ContactOwnersViewModel contactForm) { if (!ModelState.IsValid) { return(ContactOwners(id)); } var package = packageSvc.FindPackageRegistrationById(id); if (package == null) { return(PackageNotFound(id)); } MailAddress from = null; if (Request.IsAuthenticated) { var user = userSvc.FindByUsername(HttpContext.User.Identity.Name); from = user.ToMailAddress(); } else { from = new MailAddress(contactForm.Email); } var packageUrl = EnsureTrailingSlash(Configuration.GetSiteRoot(UseHttps())) + RemoveStartingSlash(Url.Package(package)); messageService.SendContactOwnersMessage(from, package, contactForm.Message.clean_html(), Url.Action(MVC.Users.Edit(), protocol: Request.Url.Scheme), packageUrl, contactForm.CopySender); string message = String.Format(CultureInfo.CurrentCulture, "Your message has been sent to the maintainers of {0}.", id); TempData["Message"] = message; return(RedirectToAction(MVC.Packages.DisplayPackage(id, null))); }
public void CallsSendContactOwnersMessageWithUserInfo() { var messageService = new Mock<IMessageService>(); messageService.Setup(s => s.SendContactOwnersMessage( It.IsAny<MailAddress>(), It.IsAny<PackageRegistration>(), "I like the cut of your jib", It.IsAny<string>())); var package = new PackageRegistration { Id = "factory" }; var packageSvc = new Mock<IPackageService>(); packageSvc.Setup(p => p.FindPackageRegistrationById("factory")).Returns(package); var httpContext = new Mock<HttpContextBase>(); httpContext.Setup(h => h.User.Identity.Name).Returns("Montgomery"); var userSvc = new Mock<IUserService>(); userSvc.Setup(u => u.FindByUsername("Montgomery")).Returns(new User { EmailAddress = "*****@*****.**", Username = "******" }); var controller = CreateController(packageSvc: packageSvc, messageSvc: messageService, userSvc: userSvc, httpContext: httpContext); var model = new ContactOwnersViewModel { Message = "I like the cut of your jib", }; var result = controller.ContactOwners("factory", model) as RedirectToRouteResult; Assert.NotNull(result); }
public virtual ActionResult ContactOwners(string id) { var package = _packageService.FindPackageRegistrationById(id); if (package == null) { return(HttpNotFound()); } var model = new ContactOwnersViewModel { PackageId = package.Id, Owners = package.Owners.Where(u => u.EmailAllowed) }; return(View(model)); }
public virtual ActionResult ContactOwners(string id, ContactOwnersViewModel contactForm) { // Html Encode the message contactForm.Message = System.Web.HttpUtility.HtmlEncode(contactForm.Message); if (!ModelState.IsValid) { return(ContactOwners(id)); } var package = _packageService.FindPackageRegistrationById(id); if (package == null) { return(HttpNotFound()); } var user = GetCurrentUser(); var fromAddress = new MailAddress(user.EmailAddress, user.Username); _messageService.SendContactOwnersMessage( fromAddress, package, contactForm.Message, Url.Action( actionName: "Account", controllerName: "Users", routeValues: null, protocol: Request.Url.Scheme), contactForm.CopySender); string message = String.Format(CultureInfo.CurrentCulture, "Your message has been sent to the owners of {0}.", id); TempData["Message"] = message; return(RedirectToAction( actionName: "DisplayPackage", controllerName: "Packages", routeValues: new { id, version = (string)null })); }
public virtual ActionResult ContactOwners(string id, ContactOwnersViewModel contactForm) { if (!ModelState.IsValid) { return ContactOwners(id); } var package = _packageService.FindPackageRegistrationById(id); if (package == null) { return HttpNotFound(); } var user = _userService.FindByUsername(HttpContext.User.Identity.Name); var fromAddress = new MailAddress(user.EmailAddress, user.Username); _messageService.SendContactOwnersMessage( fromAddress, package, contactForm.Message, Url.Action(MVC.Users.Edit(), protocol: Request.Url.Scheme)); string message = String.Format(CultureInfo.CurrentCulture, "Your message has been sent to the owners of {0}.", id); TempData["Message"] = message; return RedirectToAction(MVC.Packages.DisplayPackage(id, null)); }
public virtual ActionResult ContactOwners(string id) { var package = _packageService.FindPackageRegistrationById(id); if (package == null) { return HttpNotFound(); } var model = new ContactOwnersViewModel { PackageId = package.Id, Owners = package.Owners.Where(u => u.EmailAllowed) }; return View(model); }
public virtual ActionResult ContactOwners(string id, ContactOwnersViewModel contactForm) { // Html Encode the message contactForm.Message = System.Web.HttpUtility.HtmlEncode(contactForm.Message); if (!ModelState.IsValid) { return ContactOwners(id); } var package = _packageService.FindPackageRegistrationById(id); if (package == null) { return HttpNotFound(); } var user = GetCurrentUser(); var fromAddress = new MailAddress(user.EmailAddress, user.Username); _messageService.SendContactOwnersMessage( fromAddress, package, contactForm.Message, Url.Action( actionName: "Account", controllerName: "Users", routeValues: null, protocol: Request.Url.Scheme), contactForm.CopySender); string message = String.Format(CultureInfo.CurrentCulture, "Your message has been sent to the owners of {0}.", id); TempData["Message"] = message; return RedirectToAction( actionName: "DisplayPackage", controllerName: "Packages", routeValues: new { id, version = (string)null }); }
public void CallsSendContactOwnersMessageWithUserInfo() { var messageService = new Mock<IMessageService>(); messageService.Setup( s => s.SendContactOwnersMessage( It.IsAny<MailAddress>(), It.IsAny<PackageRegistration>(), "I like the cut of your jib", It.IsAny<string>(), false)); var package = new PackageRegistration { Id = "factory" }; var packageService = new Mock<IPackageService>(); packageService.Setup(p => p.FindPackageRegistrationById("factory")).Returns(package); var userService = new Mock<IUserService>(); var controller = CreateController( packageService: packageService, messageService: messageService); controller.SetCurrentUser(new User { EmailAddress = "*****@*****.**", Username = "******" }); var model = new ContactOwnersViewModel { Message = "I like the cut of your jib", }; var result = controller.ContactOwners("factory", model) as RedirectToRouteResult; Assert.NotNull(result); }
public void HtmlEncodesMessageContent() { var messageService = new Mock<IMessageService>(); string sentMessage = null; messageService.Setup( s => s.SendContactOwnersMessage( It.IsAny<MailAddress>(), It.IsAny<PackageRegistration>(), It.IsAny<string>(), It.IsAny<string>(), false)) .Callback<MailAddress, PackageRegistration, string, string, bool>((_, __, msg, ___, ____) => sentMessage = msg); var package = new PackageRegistration { Id = "factory" }; var packageService = new Mock<IPackageService>(); packageService.Setup(p => p.FindPackageRegistrationById("factory")).Returns(package); var userService = new Mock<IUserService>(); var controller = CreateController( packageService: packageService, messageService: messageService); controller.SetCurrentUser(new User { EmailAddress = "*****@*****.**", Username = "******" }); var model = new ContactOwnersViewModel { Message = "I like the cut of your jib. It's <b>bold</b>.", }; var result = controller.ContactOwners("factory", model) as RedirectToRouteResult; Assert.Equal("I like the cut of your jib. It's <b>bold</b>.", sentMessage); }
public virtual ActionResult ContactOwners(string id, ContactOwnersViewModel contactForm) { if (!ModelState.IsValid) return ContactOwners(id); var package = packageSvc.FindPackageRegistrationById(id); if (package == null) return PackageNotFound(id); MailAddress from = null; if (Request.IsAuthenticated) { var user = userSvc.FindByUsername(HttpContext.User.Identity.Name); from = user.ToMailAddress(); } else from = new MailAddress(contactForm.Email); var packageUrl = EnsureTrailingSlash(Configuration.GetSiteRoot(useHttps: false)) + RemoveStartingSlash(Url.Package(package)); messageService.SendContactOwnersMessage(from, package, contactForm.Message, Url.Action(MVC.Users.Edit(), protocol: Request.Url.Scheme), packageUrl, contactForm.CopySender); string message = String.Format(CultureInfo.CurrentCulture, "Your message has been sent to the maintainers of {0}.", id); TempData["Message"] = message; return RedirectToAction(MVC.Packages.DisplayPackage(id, null)); }
// NOTE: Intentionally NOT requiring authentication public virtual ActionResult ContactOwners(string id) { var package = packageSvc.FindPackageRegistrationById(id); if (package == null) return PackageNotFound(id); var model = new ContactOwnersViewModel { PackageId = package.Id, Owners = package.Owners.Where(u => u.EmailAllowed) }; if (Request.IsAuthenticated) { var user = userSvc.FindByUsername(HttpContext.User.Identity.Name); if (user.Confirmed) model.ConfirmedUser = true; } return View("~/Views/Packages/ContactOwners.cshtml", model); }