public void DeleteRole(RoleInfo role) { Requires.NotNull("role", role); AddMessage(role, EventLogController.EventLogType.ROLE_DELETED); if (role.SecurityMode != SecurityMode.SecurityRole) { //remove group artifacts var portalSettings = PortalController.Instance.GetCurrentPortalSettings(); IFileManager _fileManager = FileManager.Instance; IFolderManager _folderManager = FolderManager.Instance; IFolderInfo groupFolder = _folderManager.GetFolder(portalSettings.PortalId, "Groups/" + role.RoleID); if (groupFolder != null) { _fileManager.DeleteFiles(_folderManager.GetFiles(groupFolder)); _folderManager.DeleteFolder(groupFolder); } JournalController.Instance.SoftDeleteJournalItemByGroupId(portalSettings.PortalId, role.RoleID); } provider.DeleteRole(role); ClearRoleCache(role.PortalID); }
/// <summary> /// Delete a Role /// </summary> /// <param name="RoleId">The Id of the Role to delete</param> /// <param name="PortalId">The Id of the Portal</param> public void DeleteRole(int RoleId, int PortalId) { RoleInfo objRole = GetRole(RoleId, PortalId); if (objRole != null) { provider.DeleteRole(PortalId, ref objRole); } }
public void DeleteRole(RoleInfo role) { Requires.NotNull("role", role); AddMessage(role, EventLogController.EventLogType.ROLE_DELETED); if (role.SecurityMode != SecurityMode.SecurityRole) { //remove group artifacts var portalSettings = PortalController.Instance.GetCurrentPortalSettings(); IFileManager _fileManager = FileManager.Instance; IFolderManager _folderManager = FolderManager.Instance; IFolderInfo groupFolder = _folderManager.GetFolder(portalSettings.PortalId, "Groups/" + role.RoleID); if (groupFolder != null) { _fileManager.DeleteFiles(_folderManager.GetFiles(groupFolder)); _folderManager.DeleteFolder(groupFolder); } JournalController.Instance.SoftDeleteJournalItemByGroupId(portalSettings.PortalId, role.RoleID); } //Get users before deleting role var users = role.UserCount > 0 ? GetUsersByRole(role.PortalID, role.RoleName) : Enumerable.Empty <UserInfo>(); provider.DeleteRole(role); if (RoleDeleted != null) { RoleDeleted(null, new RoleEventArgs() { Role = role }); } //Remove the UserInfo objects of users that have been members of the group from the cache, as they have been modified foreach (var user in users) { DataCache.ClearUserCache(role.PortalID, user.Username); } ClearRoleCache(role.PortalID); // queue remove role/group from search index var document = new SearchDocumentToDelete { //PortalId = role.PortalID, RoleId = role.RoleID, // this is unique and sufficient }; DataProvider.Instance().AddSearchDeletedItems(document); }