public async Task EditGroup_ShouldReturnCorrectTwitterHandleFormat() { var groupAdmins = new GroupAdministrators(); groupAdmins.Items.Add(new GroupAdministratorItems() { Email = "*****@*****.**" }); var group = new Group("name", "slug", "metaDescription", "010101010", "*****@*****.**", "www.website.com", "https://www.twitter.com/testHandle", "www.facebook.com", "address", "description", "image-url", "thumnail-url", new List <GroupCategory> { new GroupCategory { Name = "testCategory" } }, new List <GroupSubCategory>(), new List <Crumb>(), new MapPosition { Lat = 100, Lon = 200 }, false, new List <Event>(), new GroupAdministrators(), DateTime.MinValue, DateTime.MinValue, "status", new List <string>(), "£1", "ability", false, "volunteer text", new Organisation(), new List <Group>(), false, "tenaport-link", new List <GroupBranding>(), "aditional-info", new List <Document>(), DateTime.MinValue, new List <string>(), new List <string>(), "donation-text", "donation-url", new List <Alert>()); var loggedInPerson = new LoggedInPerson { Email = "*****@*****.**" }; _repository.Setup(_ => _.Get <Group>(It.IsAny <string>(), It.IsAny <List <Query> >())) .ReturnsAsync(StockportWebapp.Http.HttpResponse.Successful((int)HttpStatusCode.OK, group)); _groupsService.Setup(_ => _.HasGroupPermission(It.IsAny <string>(), It.IsAny <List <GroupAdministratorItems> >(), It.IsAny <string>())).Returns(true); _markdownWrapper.Setup(_ => _.ConvertToHtml(It.IsAny <string>())); _groupsService.Setup(_ => _.GetVolunteeringText(It.IsAny <string>())); _groupsService.Setup(_ => _.GetAvailableGroupCategories()).ReturnsAsync(new List <string>()); // Act var view = await _groupController.EditGroup("slug", loggedInPerson) as ViewResult; var model = view.ViewData.Model as GroupSubmission; Assert.Equal("@testHandle", model.Twitter); }
public LoggedInPerson GetLoggedInPerson() { var person = new LoggedInPerson(); try { var token = _httpContextAccessor.HttpContext.Request.Headers["jwtCookie"]; if (!string.IsNullOrEmpty(token)) { person = _decoder.Decode(token); } } catch (Exception ex) { _logger.LogWarning($"Exception thrown in GroupAuthorisation, {ex.Message}"); } return(person); }
private async Task CreateCurrentUserParameter(HttpActionContext actionContext) { var controller = (ApiController)actionContext.ControllerContext.Controller; var user = controller.User; if (!user.Identity.IsAuthenticated) { return; } var parameter = actionContext.ActionDescriptor.GetParameters().SingleOrDefault(p => typeof(ILoggedInPerson).IsAssignableFrom(p.ParameterType)); if (parameter == null) { return; } LoggedInPerson loggedInPerson = null; if (!string.IsNullOrWhiteSpace(user.Identity.Name)) { IdentityUser loggedInUser = await UserManager.FindByIdAsync(user.Identity.GetUserId()); if (loggedInUser != null) { var roles = loggedInUser.Roles; var roleValues = roles.Select(identityUserRole => int.Parse(identityUserRole.RoleId)) .Select(enumValue => enumValue.ToString()) .ToList(); loggedInPerson = new LoggedInPerson(loggedInUser.Id, loggedInUser.UserName, roleValues); } } var currentUser = loggedInPerson; actionContext.ActionArguments[parameter.ParameterName] = currentUser; }
private async Task <bool> IsUserAdvisorForGroup(string groupSlug, ContentfulConfig config, LoggedInPerson user) { if (string.IsNullOrEmpty(user.Email)) { return(false); } var groupAdvisorsRepository = _groupAdvisorRepository(config); var groupAdvisorResponse = await groupAdvisorsRepository.CheckIfUserHasAccessToGroupBySlug(groupSlug, user.Email); return(groupAdvisorResponse); }