Example #1
0
        public async Task <IActionResult> AddRole([FromBody] RolePayload payload)
        {
            var group = await SingleOrError(_groupsRepo.FindOne(EntityId).Include(_ => _.Roles));

            var role = await _rolesRepo.GetOrCreate(payload.Section, payload.Num);

            var groupRole = await _groupsRepo.AddRole(group, role);

            return(Ok(Mapper.Map <GroupRoleData>(groupRole)));
        }
    public static async ValueTask <Role> DecodeRoleJwtPayloadFromCookieAsync(
        this HttpContext context, string jwtSecret,
        FixtureDomainRepository repository)
    {
        string?token = context.Request.Cookies[nameof(Role)];

        if (token == null)
        {
            throw new InvalidOperationException("HttpContext Request doesn't contain Role cookie item.");
        }
        RolePayload payload = Jose.JWT.Decode <RolePayload>(token,
                                                            jwtSecret,
                                                            JweAlgorithm.PBES2_HS256_A128KW,
                                                            JweEncryption.A256CBC_HS512);

        return(await repository.Roles.FindAsync(payload.UserId) ??
               throw new InvalidOperationException($"UserId: {payload.UserId} doesn't exists "));
    }