예제 #1
0
        public async Task <IActionResult> GetForLeg(int legID)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(Challenge());
            }

            var leg = await _legRepository.Get(legID);

            if (leg == null)
            {
                return(NotFound());
            }

            var driver = await _driverRepository.GetAsync(leg.DriverID);

            AuthorizationResult authorizationResult = await _authorizationService.AuthorizeAsync(User, driver, "DriverInfoPolicyPickupAllowed");

            if (!authorizationResult.Succeeded)
            {
                return(Forbid());
            }

            return(Ok(_repository.GetForLeg(leg)));
        }
예제 #2
0
        public async Task <IActionResult> Get(int id)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(Challenge());
            }

            Leg leg = await _legRepository.Get(id);

            Driver driver = await _driverRepository.GetAsync(leg.DriverID);

            var authResult = await _authorizationService.AuthorizeAsync(User, driver, "DriverInfoPolicy");

            if (!authResult.Succeeded)
            {
                return(Forbid());
            }

            leg.Driver = null; // prevent self-referencing loops during serialization

            return(Ok(leg));
        }
예제 #3
0
        public async Task <IActionResult> Get(int id)
        {
            if (!User.Identity.IsAuthenticated)
            {
                return(Challenge());
            }

            var driver     = (await _legRepository.Get(id)).Driver;
            var authResult = await _authorizationService.AuthorizeAsync(User, driver, "DriverInfoPolicy");

            if (!authResult.Succeeded)
            {
                return(Forbid());
            }

            return(Ok(await _dbSync.GetLegCoordinatesAsync(id)));
        }