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)); }