The upcoming DotNetNuke release 5.6.2 will have enhanced User Deletion capabilities. Deletion of a user moves user to a soft-deleted state, after which user can be permanently removed or restored back.
Soft Delete
When a user gets deleted, user goes into a soft-delete state. Admin can choose to restore user back into the portal or remove permanently.
When a user is soft-deleted, user can no longer log-in. If the user is already logged-in while admin deletes the user, user will be automatically logged-out upon next access to any page / resource.
When a user is soft-deleted, user is permanently disassociated from any Roles he/she was part of.
Upon restore, user will need to be manually added back to Roles.
Soft-deleted users are still listed in Admin->User Accounts. They can be searched through any of the filters such as UserName, Alphabets, Email, etc. The only difference is that they are listed with different font (strike-through) and a different color (disabled). There is a new attribute in the "Edit User Accounts" screen to show Deleted flag. There are two icons in the User List for one-click Restore or Permanent Removal.
User Restore
Admins can choose to restore a soft-deleted user back to the portal. This can be done by clicking on the restore icon. User should be able to log-in with old password, provided user is authorized to log-in. However, user's Roles are not restored, Admin needs to add user back to the Roles manually.
User Removal
Admins can choose to permanently remove soft-deleted users from the entire system. A permanently deleted user can not be restored back. The Username of permanently removed user can be used to create new user.
If a Username is present in more than one portal, [permanent] removal of user in one portal has no affect on any other portals. If a username is required to be permanently removed from the entire system, the user needs to be permanently removed from each and every portal he/she is in. The [permanent] removal from the last portal will finally wash out the user the entire system, after which username can then be reused.
Bulk Removal
There is a new module action at the bottom of Admin->User Accounts "Removed Deleted Users". This action is provided to permanently remove 'All' the users in soft-delete mode in a portal.
Event Viewer
Event Viewer can have the following entries related to this feature:
User Deleted - Indicates user is soft-deleted
User Removed - Indicates user is permanently removed
User Restored - Indicates user is restored.
SuperUser Account
Host->SuperUser Account gets the same feature as Admin->User Accounts.
Developer Gotchas
DotNetNuke strongly suggests Developers to *Never* create foreign key constraints with UserID column on Users table. In the event such constraint exists, the user cannot be completely removed from the system. User will be removed from the Portal though, but not completely from the system. Following message will be show in the event log indicating a failure in user removal:
The DELETE statement conflicted with the REFERENCE constraint "FK_xxxx_yyyy_zzz_Users". The conflict occurred in database "RRRR", table "dbo.xxxx_UserYYY", column 'UserId'. The statement has been terminated.