internal void DeleteUser(SecurityContext context, int userId) { // refresh flattening Flattener.DeleteUser(userId, Membership); // delete from Groups foreach (var group in Groups.Values) { group.UserMemberIds.Remove(userId); } // delete ACEs & empty ACLs EntityManager.RemoveIdentityRelatedAces(userId); }
internal void DeleteUser(SecurityContext context, int userId) { // refresh flattening Flattener.DeleteUser(userId, this.Membership); // delete from Groups foreach (var group in this.Groups.Values) { group.UserMemberIds.Remove(userId); } // delete Aces & emtpy Acls SecurityEntity.RemoveIdentityRelatedAces(context, userId); }
internal void DeleteIdentities(SecurityContext context, IEnumerable <int> identityIds) { foreach (var identityId in identityIds) { // delete from Groups SecurityGroup group; if (this.Groups.TryGetValue(identityId, out group)) { // identityId is a groupId var allUsers = Flattener.GetAllUserIds(group); var allParents = Flattener.GetAllParentGroupIdsInclusive(group); foreach (var g in group.Groups) { g.ParentGroups.Remove(group); } foreach (var g in group.ParentGroups) { g.Groups.Remove(group); } this.Groups.Remove(identityId); // refresh flattening with support lists Flattener.DeleteGroup(group, allUsers, allParents, this.Groups, this.Membership); } else { // identityId is a userId or an unknown item Flattener.DeleteUser(identityId, this.Membership); foreach (var grp in this.Groups.Values) { grp.UserMemberIds.Remove(identityId); } } // delete Aces & emtpy Acls SecurityEntity.RemoveIdentityRelatedAces(context, identityId); } }