public async Task <ActionResult <SimpleResult <IEnumerable <Permission> > > > GivenPermissions() { SimpleResult <IEnumerable <Permission> > result = default; if (await this.Authorize()) { IEnumerable <Permission> evaluation = this.getAllPermissionsOnController(); //now, ask for each Permission if the specific user has it string sub = PrincipalHelper.ExtractSubjectId(HttpContext.User); List <Permission> resultPayload = new List <Permission>(); foreach (Permission permission in evaluation) { if (await this.permissionServerClient.CheckPermissionAsync(sub, permission.Name)) { resultPayload.Add(permission); } } result = new SimpleResult <IEnumerable <Permission> >(resultPayload); } else { result = new SimpleResult <IEnumerable <Permission> >(new ErrorInfo(3, "Not permitted")); } return(result); }
private bool authorizeLocally() { string permission = string.Empty; permission = this.getLastPermitAttribute(); return(this.authenticationService.CheckPermission(PrincipalHelper.ExtractSubjectId(HttpContext.User), permission)); }
public async Task <bool> CheckPermissionAsync(Microsoft.Extensions.Primitives.StringValues HttpAuthHeader, ClaimsPrincipal principal, string Permission) { this.AddAuthenticationHeader(this.extractToken(HttpAuthHeader)); return(await this.CheckPermissionAsync(PrincipalHelper.ExtractSubjectId(principal), Permission)); }