Beispiel #1
0
        public async Task <IHttpActionResult> RevokePermission(RevokeClientPermission model)
        {
            Logger.Info("Revoke permissions requested");

            if (User == null || User.Identity == null || User.Identity.IsAuthenticated == false)
            {
                Logger.Info("User not authenticated, redirecting to login");
                return(RedirectToLogin());
            }

            if (model != null && String.IsNullOrWhiteSpace(model.ClientId))
            {
                Logger.Warn("No model or client id submitted");
                ModelState.AddModelError("ClientId", localizationService.GetMessage(MessageIds.ClientIdRequired));
            }

            if (model == null || ModelState.IsValid == false)
            {
                var error = ModelState.Where(x => x.Value.Errors.Any()).Select(x => x.Value.Errors.First().ErrorMessage).First();
                Logger.WarnFormat("Rendering error: {0}", error);
                return(await RenderPermissionsPage(error));
            }

            Logger.InfoFormat("Revoking permissions for sub: {0}, name: {1}, clientID: {2}", User.GetSubjectId(), User.Identity.Name, model.ClientId);

            await this.clientPermissionsService.RevokeClientPermissionsAsync(User.GetSubjectId(), model.ClientId);

            await eventService.RaiseClientPermissionsRevokedEventAsync(User as ClaimsPrincipal, model.ClientId);

            Logger.Info("Redirecting back to permissions page");

            return(RedirectToRoute(Constants.RouteNames.ClientPermissions, null));
        }
        public async Task <IHttpActionResult> RevokePermission(RevokeClientPermission model)
        {
            if (options.Endpoints.ClientPermissionsEndpoint.IsEnabled == false)
            {
                return(NotFound());
            }

            if (User == null || User.Identity == null || User.Identity.IsAuthenticated == false)
            {
                return(RedirectToLogin());
            }

            if (model == null || ModelState.IsValid == false)
            {
                var error = ModelState.Where(x => x.Value.Errors.Any()).Select(x => x.Value.Errors.First().ErrorMessage).First();
                return(await RenderPermissionsPage(error));
            }

            await this.clientPermissionsService.RevokeClientPermissionsAsync(User.GetSubjectId(), model.ClientId);

            return(RedirectToRoute(Constants.RouteNames.ClientPermissions, null));
        }