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()); }
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(); }
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); }
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())); }
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); }