Esempio n. 1
0
        protected override Task HandleRequirementAsync(
            AuthorizationHandlerContext context,
            DomainRegionTargetRequirement requirement,
            ulong target)
        {
            if (context.User.IsInRole(Role.Super))
            {
                var domainRegions = _domainRegionService.GetDomainRegionList().Result;

                if (domainRegions.Any(x => x.Target == target))
                {
                    context.Succeed(requirement);
                }
            }
            else if (context.User.IsInRole(Role.Administrator))
            {
                var domainRegions = _domainRegionService.GetDomainRegionList().Result;

                if (domainRegions.Any(x => x.Target == target))
                {
                    context.Succeed(requirement);
                }
            }
            else if (context.User.IsInRole(Role.Publisher))
            {
                var publisherId = int.Parse(context.User.Claims.FirstOrDefault(c => c.Type == MyClaimTypes.PublisherId).Value);

                var domainRegions = _domainRegionService.GetDomainRegionList().Result;

                if (domainRegions.Any(x => x.Target == target &&
                                      x.PublisherId == publisherId))
                {
                    context.Succeed(requirement);
                }
            }
            else if (context.User.IsInRole(Role.Operator))
            {
                var publisherId = int.Parse(context.User.Claims.FirstOrDefault(c => c.Type == MyClaimTypes.PublisherId).Value);

                var domainRegions = _domainRegionService.GetDomainRegionList().Result;

                if (domainRegions.Any(x => x.Target == target &&
                                      x.PublisherId == publisherId))
                {
                    context.Succeed(requirement);
                }
            }

            return(Task.CompletedTask);
        }
Esempio n. 2
0
        public async Task <ActionResult <IEnumerable <GetDomainRegionResponseDto> > > Get()
        {
            var domainRegionList = await _domainRegionService.GetDomainRegionList();

            return(Ok(_mapper.Map <IEnumerable <DomainRegion>, IEnumerable <GetDomainRegionResponseDto> >(domainRegionList)));
        }