Beispiel #1
0
 public async Task <IEnumerable <TodoListDto> > LoadTodoListsAsync(Guid tenantId)
 {
     return(await _db.Query <TodoList>().Select(x => new TodoListDto
     {
         Id = x.Id,
         Description = x.Description,
         Title = x.Title
     }).ToListAsync());
 }
Beispiel #2
0
        public async Task <IdentityResult> CreateAsync(TUser user, Guid tenantId)
        {
            var tenant = _db.Query <Dal.Models.Tenant>().FirstOrDefault(x => x.Id == tenantId);

            if (tenant == null)
            {
                throw new ArgumentException("Tenant does not exist", nameof(tenantId));
            }

            var identityResult = await base.CreateAsync(user);

            if (!identityResult.Succeeded)
            {
                return(identityResult);
            }

            await AssignUserToTenant(user, tenantId);

            return(identityResult);
        }
Beispiel #3
0
        /// <summary>
        /// Add tenant claim as GroupSid
        /// </summary>
        public override async Task <ClaimsPrincipal> CreateAsync(User user)
        {
            var tenantId = _db.Query <TenantUser>().Where(x => x.UserId == user.Id).Select(x => x.TenantId).FirstOrDefault();

            if (tenantId == null)
            {
                throw new InvalidOperationException("Cannot find tenant and thus cannot add tenant claim.");
            }

            var principal = await base.CreateAsync(user);

            ((ClaimsIdentity)principal.Identity).AddClaim(new Claim(ClaimTypes.GroupSid, tenantId.ToString()));
            return(principal);
        }