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);
        }
Beispiel #2
0
        private bool authorizeLocally()
        {
            string permission = string.Empty;

            permission = this.getLastPermitAttribute();

            return(this.authenticationService.CheckPermission(PrincipalHelper.ExtractSubjectId(HttpContext.User), permission));
        }
Beispiel #3
0
 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));
 }