public async Task <User> DeleteRolesFromUser(User user, IList <Role> roles)
        {
            var roleIds = roles.Select(r => r.Id);

            var roleUsers =
                AuthorizationDbContext.RoleUsers.Where(
                    ru => ru.SubjectId == user.SubjectId &&
                    ru.IdentityProvider == user.IdentityProvider &&
                    !ru.IsDeleted &&
                    roleIds.Contains(ru.RoleId));

            foreach (var roleUser in roleUsers)
            {
                var roleToRemove = roles.FirstOrDefault(r => r.Id == roleUser.RoleId);
                if (roleToRemove != null)
                {
                    user.Roles.Remove(roleToRemove);
                    roleUser.IsDeleted = true;
                }
            }

            await AuthorizationDbContext.SaveChangesAsync();

            await EventService.RaiseEventAsync(new EntityAuditEvent <User>(EventTypes.ChildEntityDeletedEvent, user.Id, user));

            return(user);
        }
        public async Task <User> Add(User model)
        {
            var entity = model.ToEntity();

            _authorizationDbContext.Users.Add(entity);
            await _authorizationDbContext.SaveChangesAsync();

            return(entity.ToModel());
        }
        public async Task <User> Add(User user)
        {
            var userEntity = user.ToEntity();

            AuthorizationDbContext.Users.Add(userEntity);
            await AuthorizationDbContext.SaveChangesAsync();

            await EventService.RaiseEventAsync(new EntityAuditEvent <User>(EventTypes.EntityCreatedEvent, user.Id, userEntity.ToModel()));

            return(userEntity.ToModel());
        }
Example #4
0
        public async Task <Group> AddUserToGroup(Group group, User user)
        {
            var groupUser = new GroupUser
            {
                GroupId          = Guid.Parse(group.Id),
                SubjectId        = user.SubjectId,
                IdentityProvider = user.IdentityProvider
            };

            _authorizationDbContext.GroupUsers.Add(groupUser);
            await _authorizationDbContext.SaveChangesAsync();

            return(group);
        }
        public async Task Delete(User model)
        {
            var user = await _authorizationDbContext.Users
                       .SingleOrDefaultAsync(u =>
                                             u.IdentityProvider.Equals(model.IdentityProvider, StringComparison.OrdinalIgnoreCase) &&
                                             u.SubjectId.Equals(model.SubjectId, StringComparison.OrdinalIgnoreCase) &&
                                             !u.IsDeleted);

            if (user == null)
            {
                throw new NotFoundException <User>($"Could not find {typeof(User).Name} User IDP = {model.IdentityProvider}, SubjectId = {model.SubjectId}");
            }

            user.IsDeleted = true;
            await _authorizationDbContext.SaveChangesAsync();
        }
Example #6
0
        public async Task <User> AddRolesToUser(User user, IList <Role> roles)
        {
            foreach (var role in roles)
            {
                user.Roles.Add(role);
                _authorizationDbContext.RoleUsers.Add(new RoleUser
                {
                    IdentityProvider = user.IdentityProvider,
                    SubjectId        = user.SubjectId,
                    RoleId           = role.Id
                });
            }
            await _authorizationDbContext.SaveChangesAsync();

            return(user);
        }
Example #7
0
        public async Task <Group> DeleteUserFromGroup(Group group, User user)
        {
            var userInGroup = await _authorizationDbContext.GroupUsers
                              .SingleOrDefaultAsync(gu =>
                                                    gu.SubjectId.Equals(user.SubjectId, StringComparison.OrdinalIgnoreCase) &&
                                                    gu.IdentityProvider.Equals(user.IdentityProvider, StringComparison.OrdinalIgnoreCase) &&
                                                    gu.GroupId == Guid.Parse(group.Id));

            if (userInGroup != null)
            {
                userInGroup.IsDeleted = true;
                _authorizationDbContext.GroupUsers.Update(userInGroup);
                await _authorizationDbContext.SaveChangesAsync();
            }

            return(group);
        }
        public async Task Delete(User user)
        {
            var userEntity = await AuthorizationDbContext.Users
                             .SingleOrDefaultAsync(u =>
                                                   u.IdentityProvider == user.IdentityProvider &&
                                                   u.SubjectId == user.SubjectId &&
                                                   !u.IsDeleted);

            if (userEntity == null)
            {
                throw new NotFoundException <User>(
                          $"Could not find {typeof(User).Name} User IDP = {user.IdentityProvider}, SubjectId = {user.SubjectId}");
            }

            userEntity.IsDeleted = true;
            await AuthorizationDbContext.SaveChangesAsync();

            await EventService.RaiseEventAsync(new EntityAuditEvent <User>(EventTypes.EntityDeletedEvent, user.Id, userEntity.ToModel()));
        }
Example #9
0
        public async Task <User> DeleteRolesFromUser(User user, IList <Role> roles)
        {
            var roleUsers =
                _authorizationDbContext.RoleUsers.Where(
                    ru => ru.SubjectId.Equals(user.SubjectId, StringComparison.OrdinalIgnoreCase) &&
                    ru.IdentityProvider.Equals(user.IdentityProvider, StringComparison.OrdinalIgnoreCase));

            foreach (var roleUser in roleUsers)
            {
                var roleToRemove = roles.FirstOrDefault(r => r.Id == roleUser.RoleId);
                if (roleToRemove != null)
                {
                    user.Roles.Remove(roleToRemove);
                    roleUser.IsDeleted = true;
                    _authorizationDbContext.RoleUsers.Update(roleUser);
                }
            }
            await _authorizationDbContext.SaveChangesAsync();

            return(user);
        }
        public async Task <User> AddRolesToUser(User user, IList <Role> roles)
        {
            var roleUsers = new List <RoleUser>();

            foreach (var role in roles)
            {
                user.Roles.Add(role);
                var roleUser = new RoleUser
                {
                    IdentityProvider = user.IdentityProvider,
                    SubjectId        = user.SubjectId,
                    RoleId           = role.Id
                };

                AuthorizationDbContext.RoleUsers.Add(roleUser);
                roleUsers.Add(roleUser);
            }

            await AuthorizationDbContext.SaveChangesAsync();

            await EventService.RaiseEventAsync(new EntityAuditEvent <User>(EventTypes.ChildEntityCreatedEvent, user.Id, user));

            return(user);
        }