Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
            }
        }