public async Task <CommunityViewModel> GetCommunityByNameAsync(string communityName) { var community = await _communityRepository.GetByConditionAsync <CommunityViewModel>( x => x.Name == communityName, CommunityHelpers.GetCommunityMapperConfiguration()); Guard.Against.NullItem(community, nameof(community)); return(community); }
public async Task <IEnumerable <CommunityViewModel> > GetCommunitiesAsync(CommunitySearchParams searchParams) { User user = await _userManager.FindByIdAsync(searchParams.UserId); Guard.Against.NullItem(user, nameof(user)); var specification = new CommunityFilterSpecification(searchParams); return(await _communityRepository.ListAsync <CommunityViewModel>(specification, CommunityHelpers.GetCommunityMapperConfiguration())); }
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, CanDeleteCommunityAuthorizationRequirement requirement, Sharporum.Domain.Entities.Community community) { string roleBase = $"{nameof(Community)}/{community.Id}"; if (context.User.HasClaim(JwtClaimTypes.Role, $"{roleBase}/{Roles.Admin}") || CommunityHelpers.UserOwnsCommunity(context.User.FindFirstValue("sub"), community.AuthorId)) { context.Succeed(requirement); return(Task.CompletedTask); } context.Fail(); return(Task.CompletedTask); }