From 2ed593c5e0da6e606725479f5e4ba9589569f00c Mon Sep 17 00:00:00 2001 From: sbwalker Date: Mon, 26 Feb 2024 14:48:26 -0500 Subject: [PATCH] include SiteId in SyncEvent --- Oqtane.Server/Controllers/AliasController.cs | 6 +++--- Oqtane.Server/Controllers/FileController.cs | 12 +++++------ Oqtane.Server/Controllers/FolderController.cs | 8 ++++---- .../Controllers/LanguageController.cs | 12 +++++------ Oqtane.Server/Controllers/ModuleController.cs | 12 +++++------ .../Controllers/ModuleDefinitionController.cs | 6 +++--- .../Controllers/NotificationController.cs | 6 +++--- Oqtane.Server/Controllers/PageController.cs | 20 +++++++++---------- .../Controllers/PageModuleController.cs | 16 +++++++-------- .../Controllers/ProfileController.cs | 6 +++--- Oqtane.Server/Controllers/RoleController.cs | 6 +++--- .../Controllers/SettingController.cs | 4 ++-- Oqtane.Server/Controllers/ThemeController.cs | 6 +++--- .../Controllers/UrlMappingController.cs | 6 +++--- .../Controllers/UserRoleController.cs | 12 +++++------ .../Infrastructure/Interfaces/ISyncManager.cs | 4 ++++ Oqtane.Server/Infrastructure/SyncManager.cs | 16 +++++++++++++-- Oqtane.Server/Managers/UserManager.cs | 10 +++++----- Oqtane.Server/Pages/Files.cshtml.cs | 2 +- Oqtane.Server/Pages/Logout.cshtml.cs | 2 +- Oqtane.Server/Services/SiteService.cs | 9 ++++----- Oqtane.Server/Startup.cs | 2 +- Oqtane.Shared/Models/Sync.cs | 1 + 23 files changed, 100 insertions(+), 84 deletions(-) diff --git a/Oqtane.Server/Controllers/AliasController.cs b/Oqtane.Server/Controllers/AliasController.cs index 4d942cee..f7892500 100644 --- a/Oqtane.Server/Controllers/AliasController.cs +++ b/Oqtane.Server/Controllers/AliasController.cs @@ -59,7 +59,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid) { alias = _aliases.AddAlias(alias); - _syncManager.AddSyncEvent(alias.TenantId, EntityNames.Alias, alias.AliasId, SyncEventActions.Create); + _syncManager.AddSyncEvent(alias, EntityNames.Alias, alias.AliasId, SyncEventActions.Create); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Alias Added {Alias}", alias); } else @@ -79,7 +79,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && alias.AliasId == id && _aliases.GetAlias(alias.AliasId, false) != null) { alias = _aliases.UpdateAlias(alias); - _syncManager.AddSyncEvent(alias.TenantId, EntityNames.Alias, alias.AliasId, SyncEventActions.Update); + _syncManager.AddSyncEvent(alias, EntityNames.Alias, alias.AliasId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Alias Updated {Alias}", alias); } else @@ -100,7 +100,7 @@ namespace Oqtane.Controllers if (alias != null) { _aliases.DeleteAlias(id); - _syncManager.AddSyncEvent(alias.TenantId, EntityNames.Alias, alias.AliasId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(alias, EntityNames.Alias, alias.AliasId, SyncEventActions.Delete); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Alias Deleted {AliasId}", id); var aliases = _aliases.GetAliases(); diff --git a/Oqtane.Server/Controllers/FileController.cs b/Oqtane.Server/Controllers/FileController.cs index 7dc5cfb6..aeeda0b2 100644 --- a/Oqtane.Server/Controllers/FileController.cs +++ b/Oqtane.Server/Controllers/FileController.cs @@ -176,7 +176,7 @@ namespace Oqtane.Controllers { file = CreateFile(file.Name, folder.FolderId, filepath); file = _files.AddFile(file); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.File, file.FileId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.File, file.FileId, SyncEventActions.Create); _logger.Log(LogLevel.Information, this, LogFunction.Create, "File Added {File}", file); } else @@ -234,7 +234,7 @@ namespace Oqtane.Controllers } file = _files.UpdateFile(file); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.File, file.FileId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.File, file.FileId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "File Updated {File}", file); } else @@ -266,7 +266,7 @@ namespace Oqtane.Controllers } _files.DeleteFile(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.File, file.FileId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.File, file.FileId, SyncEventActions.Delete); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "File Deleted {File}", file); } else @@ -341,7 +341,7 @@ namespace Oqtane.Controllers if (file != null) { file = _files.AddFile(file); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.File, file.FileId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.File, file.FileId, SyncEventActions.Create); } } catch (Exception ex) @@ -429,7 +429,7 @@ namespace Oqtane.Controllers file = _files.UpdateFile(file); } _logger.Log(LogLevel.Information, this, LogFunction.Create, "File Upload Succeeded {File}", Path.Combine(folderPath, upload)); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.File, file.FileId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.File, file.FileId, SyncEventActions.Create); } } } @@ -586,7 +586,7 @@ namespace Oqtane.Controllers { if (asAttachment) { - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.File, file.FileId, "Download"); + _syncManager.AddSyncEvent(_alias, EntityNames.File, file.FileId, "Download"); return PhysicalFile(filepath, file.GetMimeType(), file.Name); } else diff --git a/Oqtane.Server/Controllers/FolderController.cs b/Oqtane.Server/Controllers/FolderController.cs index 83fa8e5f..23d3db9b 100644 --- a/Oqtane.Server/Controllers/FolderController.cs +++ b/Oqtane.Server/Controllers/FolderController.cs @@ -173,7 +173,7 @@ namespace Oqtane.Controllers folder.Path = folder.Path + "/"; } folder = _folders.AddFolder(folder); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Folder, folder.FolderId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.Folder, folder.FolderId, SyncEventActions.Create); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Folder Added {Folder}", folder); } else @@ -225,7 +225,7 @@ namespace Oqtane.Controllers } folder = _folders.UpdateFolder(folder); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Folder, folder.FolderId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Folder, folder.FolderId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Folder Updated {Folder}", folder); } else @@ -259,7 +259,7 @@ namespace Oqtane.Controllers { folder.Order = order; _folders.UpdateFolder(folder); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Folder, folder.FolderId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Folder, folder.FolderId, SyncEventActions.Update); } order += 2; } @@ -285,7 +285,7 @@ namespace Oqtane.Controllers Directory.Delete(_folders.GetFolderPath(folder)); } _folders.DeleteFolder(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Folder, folder.FolderId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Folder, folder.FolderId, SyncEventActions.Delete); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Folder Deleted {FolderId}", id); } else diff --git a/Oqtane.Server/Controllers/LanguageController.cs b/Oqtane.Server/Controllers/LanguageController.cs index 8ed5e4d4..6ee66cac 100644 --- a/Oqtane.Server/Controllers/LanguageController.cs +++ b/Oqtane.Server/Controllers/LanguageController.cs @@ -109,8 +109,8 @@ namespace Oqtane.Controllers if (ModelState.IsValid && language.SiteId == _alias.SiteId) { _languages.UpdateLanguage(language); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Language, language.LanguageId, SyncEventActions.Update); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Language, language.LanguageId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Language Updated {Language}", language); } else @@ -127,8 +127,8 @@ namespace Oqtane.Controllers if (ModelState.IsValid && language.SiteId == _alias.SiteId) { language = _languages.AddLanguage(language); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Language, language.LanguageId, SyncEventActions.Create); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Language, language.LanguageId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Language Added {Language}", language); } else @@ -148,8 +148,8 @@ namespace Oqtane.Controllers if (language != null && language.SiteId == _alias.SiteId) { _languages.DeleteLanguage(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Language, language.LanguageId, SyncEventActions.Delete); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Language, language.LanguageId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Language Deleted {LanguageId}", id); } else diff --git a/Oqtane.Server/Controllers/ModuleController.cs b/Oqtane.Server/Controllers/ModuleController.cs index 8acde463..56c75eae 100644 --- a/Oqtane.Server/Controllers/ModuleController.cs +++ b/Oqtane.Server/Controllers/ModuleController.cs @@ -136,8 +136,8 @@ namespace Oqtane.Controllers if (ModelState.IsValid && module.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Page, module.PageId, PermissionNames.Edit)) { module = _modules.AddModule(module); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Module, module.ModuleId, SyncEventActions.Create); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Module, module.ModuleId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Module Added {Module}", module); } else @@ -187,8 +187,8 @@ namespace Oqtane.Controllers } } - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Module, module.ModuleId, SyncEventActions.Update); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Module, module.ModuleId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Module Updated {Module}", module); } else @@ -209,8 +209,8 @@ namespace Oqtane.Controllers if (module != null && module.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, module.SiteId, EntityNames.Module, module.ModuleId, PermissionNames.Edit)) { _modules.DeleteModule(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Module, module.ModuleId, SyncEventActions.Delete); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Module, module.ModuleId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Module Deleted {ModuleId}", id); } else diff --git a/Oqtane.Server/Controllers/ModuleDefinitionController.cs b/Oqtane.Server/Controllers/ModuleDefinitionController.cs index 39ae9f48..78436ff2 100644 --- a/Oqtane.Server/Controllers/ModuleDefinitionController.cs +++ b/Oqtane.Server/Controllers/ModuleDefinitionController.cs @@ -171,7 +171,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && moduleDefinition.SiteId == _alias.SiteId && moduleDefinition.ModuleDefinitionId == id && _moduleDefinitions.GetModuleDefinition(moduleDefinition.ModuleDefinitionId, moduleDefinition.SiteId) != null) { _moduleDefinitions.UpdateModuleDefinition(moduleDefinition); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.ModuleDefinition, moduleDefinition.ModuleDefinitionId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.ModuleDefinition, moduleDefinition.ModuleDefinitionId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Module Definition Updated {ModuleDefinition}", moduleDefinition); } else @@ -274,8 +274,8 @@ namespace Oqtane.Controllers // remove module definition _moduleDefinitions.DeleteModuleDefinition(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.ModuleDefinition, moduledefinition.ModuleDefinitionId, SyncEventActions.Delete); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, moduledefinition.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.ModuleDefinition, moduledefinition.ModuleDefinitionId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, moduledefinition.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Module Definition {ModuleDefinitionName} Deleted", moduledefinition.Name); } else diff --git a/Oqtane.Server/Controllers/NotificationController.cs b/Oqtane.Server/Controllers/NotificationController.cs index 95fb8a07..44bc7a93 100644 --- a/Oqtane.Server/Controllers/NotificationController.cs +++ b/Oqtane.Server/Controllers/NotificationController.cs @@ -168,7 +168,7 @@ namespace Oqtane.Controllers notification.Body = WebUtility.HtmlEncode(notification.Body); } notification = _notifications.AddNotification(notification); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Notification, notification.NotificationId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.Notification, notification.NotificationId, SyncEventActions.Create); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Notification Added {NotificationId}", notification.NotificationId); } else @@ -194,7 +194,7 @@ namespace Oqtane.Controllers notification.Body = WebUtility.HtmlEncode(notification.Body); } notification = _notifications.UpdateNotification(notification); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Notification, notification.NotificationId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Notification, notification.NotificationId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Notification Updated {NotificationId}", notification.NotificationId); } else @@ -215,7 +215,7 @@ namespace Oqtane.Controllers if (notification != null && notification.SiteId == _alias.SiteId && (IsAuthorized(notification.FromUserId) || IsAuthorized(notification.ToUserId))) { _notifications.DeleteNotification(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Notification, notification.NotificationId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Notification, notification.NotificationId, SyncEventActions.Delete); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Notification Deleted {NotificationId}", id); } else diff --git a/Oqtane.Server/Controllers/PageController.cs b/Oqtane.Server/Controllers/PageController.cs index 458586b6..94e1f21f 100644 --- a/Oqtane.Server/Controllers/PageController.cs +++ b/Oqtane.Server/Controllers/PageController.cs @@ -149,8 +149,8 @@ namespace Oqtane.Controllers if (_userPermissions.IsAuthorized(User, PermissionNames.Edit, permissions)) { page = _pages.AddPage(page); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Page, page.PageId, SyncEventActions.Create); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, page.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Page, page.PageId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, page.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Page Added {Page}", page); if (!page.Path.StartsWith("admin/")) @@ -248,8 +248,8 @@ namespace Oqtane.Controllers _pageModules.AddPageModule(pagemodule); } - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Page, page.PageId, SyncEventActions.Create); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, page.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Page, page.PageId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, page.SiteId, SyncEventActions.Refresh); } } else @@ -338,8 +338,8 @@ namespace Oqtane.Controllers } } - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Page, page.PageId, SyncEventActions.Update); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, page.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Page, page.PageId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, page.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Page Updated {Page}", page); } else @@ -379,12 +379,12 @@ namespace Oqtane.Controllers { page.Order = order; _pages.UpdatePage(page); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Page, page.PageId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Page, page.PageId, SyncEventActions.Update); } order += 2; } - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, siteid, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, siteid, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Page Order Updated {SiteId} {PageId} {ParentId}", siteid, pageid, parentid); } else @@ -403,8 +403,8 @@ namespace Oqtane.Controllers if (page != null && page.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, page.SiteId, EntityNames.Page, page.PageId, PermissionNames.Edit)) { _pages.DeletePage(page.PageId); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Page, page.PageId, SyncEventActions.Delete); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, page.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Page, page.PageId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, page.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Page Deleted {PageId}", page.PageId); } else diff --git a/Oqtane.Server/Controllers/PageModuleController.cs b/Oqtane.Server/Controllers/PageModuleController.cs index 4f2c963d..774a287b 100644 --- a/Oqtane.Server/Controllers/PageModuleController.cs +++ b/Oqtane.Server/Controllers/PageModuleController.cs @@ -90,8 +90,8 @@ namespace Oqtane.Controllers if (ModelState.IsValid && page != null && page.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, page.SiteId, EntityNames.Page, pageModule.PageId, PermissionNames.Edit)) { pageModule = _pageModules.AddPageModule(pageModule); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.PageModule, pageModule.PageModuleId, SyncEventActions.Create); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.PageModule, pageModule.PageModuleId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Page Module Added {PageModule}", pageModule); } else @@ -112,8 +112,8 @@ namespace Oqtane.Controllers if (ModelState.IsValid && page != null && page.SiteId == _alias.SiteId && pageModule.PageModuleId == id && _pageModules.GetPageModule(pageModule.PageModuleId, false) != null && _userPermissions.IsAuthorized(User, page.SiteId, EntityNames.Page, pageModule.PageId, PermissionNames.Edit)) { pageModule = _pageModules.UpdatePageModule(pageModule); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.PageModule, pageModule.PageModuleId, SyncEventActions.Update); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.PageModule, pageModule.PageModuleId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Page Module Updated {PageModule}", pageModule); } else @@ -150,11 +150,11 @@ namespace Oqtane.Controllers pagemodule.Order = order; pagemodule.Pane = pane; _pageModules.UpdatePageModule(pagemodule); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.PageModule, pagemodule.PageModuleId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.PageModule, pagemodule.PageModuleId, SyncEventActions.Update); } order += 2; } - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Page Module Order Updated {PageId} {Pane}", pageid, pane); } else @@ -173,8 +173,8 @@ namespace Oqtane.Controllers if (pagemodule != null && pagemodule.Module.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, pagemodule.Module.SiteId, EntityNames.Page, pagemodule.PageId, PermissionNames.Edit)) { _pageModules.DeletePageModule(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.PageModule, pagemodule.PageModuleId, SyncEventActions.Delete); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.PageModule, pagemodule.PageModuleId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Page Module Deleted {PageModuleId}", id); } else diff --git a/Oqtane.Server/Controllers/ProfileController.cs b/Oqtane.Server/Controllers/ProfileController.cs index cd51b9ab..3533fdab 100644 --- a/Oqtane.Server/Controllers/ProfileController.cs +++ b/Oqtane.Server/Controllers/ProfileController.cs @@ -77,7 +77,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && profile.SiteId == _alias.SiteId) { profile = _profiles.AddProfile(profile); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Profile, profile.ProfileId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.Profile, profile.ProfileId, SyncEventActions.Create); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Profile Added {Profile}", profile); } else @@ -97,7 +97,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && profile.SiteId == _alias.SiteId && profile.ProfileId == id && _profiles.GetProfile(profile.ProfileId, false) != null) { profile = _profiles.UpdateProfile(profile); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Profile, profile.ProfileId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Profile, profile.ProfileId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Profile Updated {Profile}", profile); } else @@ -118,7 +118,7 @@ namespace Oqtane.Controllers if (profile != null && profile.SiteId == _alias.SiteId) { _profiles.DeleteProfile(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Profile, profile.ProfileId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Profile, profile.ProfileId, SyncEventActions.Delete); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Profile Deleted {ProfileId}", id); } else diff --git a/Oqtane.Server/Controllers/RoleController.cs b/Oqtane.Server/Controllers/RoleController.cs index 5b1c8948..95e6183f 100644 --- a/Oqtane.Server/Controllers/RoleController.cs +++ b/Oqtane.Server/Controllers/RoleController.cs @@ -81,7 +81,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && role.SiteId == _alias.SiteId) { role = _roles.AddRole(role); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Role, role.RoleId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.Role, role.RoleId, SyncEventActions.Create); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Role Added {Role}", role); } else @@ -101,7 +101,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && role.SiteId == _alias.SiteId && role.RoleId == id && _roles.GetRole(role.RoleId, false) != null) { role = _roles.UpdateRole(role); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Role, role.RoleId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Role, role.RoleId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Role Updated {Role}", role); } else @@ -122,7 +122,7 @@ namespace Oqtane.Controllers if (role != null && !role.IsSystem && role.SiteId == _alias.SiteId) { _roles.DeleteRole(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Role, role.RoleId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Role, role.RoleId, SyncEventActions.Delete); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Role Deleted {RoleId}", id); } else diff --git a/Oqtane.Server/Controllers/SettingController.cs b/Oqtane.Server/Controllers/SettingController.cs index f1a2f6ff..b00bf8af 100644 --- a/Oqtane.Server/Controllers/SettingController.cs +++ b/Oqtane.Server/Controllers/SettingController.cs @@ -302,14 +302,14 @@ namespace Oqtane.Controllers private void AddSyncEvent(string EntityName, int SettingId, string Action) { - _syncManager.AddSyncEvent(_alias.TenantId, EntityName + "Setting", SettingId, Action); + _syncManager.AddSyncEvent(_alias, EntityName + "Setting", SettingId, Action); switch (EntityName) { case EntityNames.Module: case EntityNames.Page: case EntityNames.Site: - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh); break; } } diff --git a/Oqtane.Server/Controllers/ThemeController.cs b/Oqtane.Server/Controllers/ThemeController.cs index f871d1d7..1eeee244 100644 --- a/Oqtane.Server/Controllers/ThemeController.cs +++ b/Oqtane.Server/Controllers/ThemeController.cs @@ -78,7 +78,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && theme.SiteId == _alias.SiteId && theme.ThemeId == id && _themes.GetTheme(theme.ThemeId,theme.SiteId) != null) { _themes.UpdateTheme(theme); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Theme, theme.ThemeId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.Theme, theme.ThemeId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Theme Updated {Theme}", theme); } else @@ -122,8 +122,8 @@ namespace Oqtane.Controllers // remove theme _themes.DeleteTheme(theme.ThemeId); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Theme, theme.ThemeId, SyncEventActions.Delete); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, theme.SiteId, SyncEventActions.Refresh); + _syncManager.AddSyncEvent(_alias, EntityNames.Theme, theme.ThemeId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.Site, theme.SiteId, SyncEventActions.Refresh); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Theme Removed For {ThemeName}", theme.ThemeName); } else diff --git a/Oqtane.Server/Controllers/UrlMappingController.cs b/Oqtane.Server/Controllers/UrlMappingController.cs index 0b2f43e0..44b6f6fb 100644 --- a/Oqtane.Server/Controllers/UrlMappingController.cs +++ b/Oqtane.Server/Controllers/UrlMappingController.cs @@ -101,7 +101,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && urlMapping.SiteId == _alias.SiteId) { urlMapping = _urlMappings.AddUrlMapping(urlMapping); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.UrlMapping, urlMapping.UrlMappingId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.UrlMapping, urlMapping.UrlMappingId, SyncEventActions.Create); _logger.Log(LogLevel.Information, this, LogFunction.Create, "UrlMapping Added {UrlMapping}", urlMapping); } else @@ -121,7 +121,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && urlMapping.SiteId == _alias.SiteId && urlMapping.UrlMappingId == id && _urlMappings.GetUrlMapping(urlMapping.UrlMappingId, false) != null) { urlMapping = _urlMappings.UpdateUrlMapping(urlMapping); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.UrlMapping, urlMapping.UrlMappingId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.UrlMapping, urlMapping.UrlMappingId, SyncEventActions.Update); _logger.Log(LogLevel.Information, this, LogFunction.Update, "UrlMapping Updated {UrlMapping}", urlMapping); } else @@ -142,7 +142,7 @@ namespace Oqtane.Controllers if (urlMapping != null && urlMapping.SiteId == _alias.SiteId) { _urlMappings.DeleteUrlMapping(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.UrlMapping, urlMapping.UrlMappingId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.UrlMapping, urlMapping.UrlMappingId, SyncEventActions.Delete); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "UrlMapping Deleted {UrlMappingId}", id); } else diff --git a/Oqtane.Server/Controllers/UserRoleController.cs b/Oqtane.Server/Controllers/UserRoleController.cs index 8ef00098..f4eb0864 100644 --- a/Oqtane.Server/Controllers/UserRoleController.cs +++ b/Oqtane.Server/Controllers/UserRoleController.cs @@ -130,8 +130,8 @@ namespace Oqtane.Controllers if (ModelState.IsValid && role != null && SiteValid(role.SiteId) && RoleValid(role.Name)) { userRole = _userRoles.AddUserRole(userRole); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.UserRole, userRole.UserRoleId, SyncEventActions.Create); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.User, userRole.UserId, SyncEventActions.Reload); + _syncManager.AddSyncEvent(_alias, EntityNames.UserRole, userRole.UserRoleId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_alias, EntityNames.User, userRole.UserId, SyncEventActions.Reload); _logger.Log(LogLevel.Information, this, LogFunction.Create, "User Role Added {UserRole}", userRole); } else @@ -152,8 +152,8 @@ namespace Oqtane.Controllers if (ModelState.IsValid && role != null && SiteValid(role.SiteId) && RoleValid(role.Name) && userRole.UserRoleId == id && _userRoles.GetUserRole(userRole.UserRoleId, false) != null) { userRole = _userRoles.UpdateUserRole(userRole); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.UserRole, userRole.UserRoleId, SyncEventActions.Update); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.User, userRole.UserId, SyncEventActions.Reload); + _syncManager.AddSyncEvent(_alias, EntityNames.UserRole, userRole.UserRoleId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_alias, EntityNames.User, userRole.UserId, SyncEventActions.Reload); _logger.Log(LogLevel.Information, this, LogFunction.Update, "User Role Updated {UserRole}", userRole); } else @@ -174,8 +174,8 @@ namespace Oqtane.Controllers if (userRole != null && SiteValid(userRole.Role.SiteId) && RoleValid(userRole.Role.Name)) { _userRoles.DeleteUserRole(id); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.UserRole, userRole.UserRoleId, SyncEventActions.Delete); - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.User, userRole.UserId, SyncEventActions.Reload); + _syncManager.AddSyncEvent(_alias, EntityNames.UserRole, userRole.UserRoleId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_alias, EntityNames.User, userRole.UserId, SyncEventActions.Reload); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "User Role Deleted {UserRole}", userRole); if (userRole.Role.Name == RoleNames.Host) diff --git a/Oqtane.Server/Infrastructure/Interfaces/ISyncManager.cs b/Oqtane.Server/Infrastructure/Interfaces/ISyncManager.cs index 82ec7d26..88784519 100644 --- a/Oqtane.Server/Infrastructure/Interfaces/ISyncManager.cs +++ b/Oqtane.Server/Infrastructure/Interfaces/ISyncManager.cs @@ -8,6 +8,10 @@ namespace Oqtane.Infrastructure { event EventHandler EntityChanged; List GetSyncEvents(int tenantId, DateTime lastSyncDate); + void AddSyncEvent(Alias alias, string entityName, int entityId, string action); + void AddSyncEvent(int tenantId, int siteId, string entityName, int entityId, string action); + + [Obsolete("AddSyncEvent(int tenantId, string entityName, int entityId, string action) is deprecated. Use AddSyncEvent(Alias alias, string entityName, int entityId, string action) instead.", false)] void AddSyncEvent(int tenantId, string entityName, int entityId, string action); } } diff --git a/Oqtane.Server/Infrastructure/SyncManager.cs b/Oqtane.Server/Infrastructure/SyncManager.cs index c6a15dfe..52e2796f 100644 --- a/Oqtane.Server/Infrastructure/SyncManager.cs +++ b/Oqtane.Server/Infrastructure/SyncManager.cs @@ -22,9 +22,14 @@ namespace Oqtane.Infrastructure return SyncEvents.Where(item => (item.TenantId == tenantId || item.TenantId == -1) && item.ModifiedOn >= lastSyncDate).ToList(); } - public void AddSyncEvent(int tenantId, string entityName, int entityId, string action) + public void AddSyncEvent(Alias alias, string entityName, int entityId, string action) { - var syncevent = new SyncEvent { TenantId = tenantId, EntityName = entityName, EntityId = entityId, Action = action, ModifiedOn = DateTime.UtcNow }; + AddSyncEvent(alias.TenantId, alias.SiteId, entityName, entityId, action); + } + + public void AddSyncEvent(int tenantId, int siteId, string entityName, int entityId, string action) + { + var syncevent = new SyncEvent { TenantId = tenantId, SiteId = siteId, EntityName = entityName, EntityId = entityId, Action = action, ModifiedOn = DateTime.UtcNow }; // client actions for PageState management if (action == SyncEventActions.Refresh || action == SyncEventActions.Reload) @@ -39,5 +44,12 @@ namespace Oqtane.Infrastructure // raise event EntityChanged?.Invoke(this, syncevent); } + + + // deprecated + public void AddSyncEvent(int tenantId, string entityName, int entityId, string action) + { + AddSyncEvent(tenantId, -1, entityName, entityId, action); + } } } diff --git a/Oqtane.Server/Managers/UserManager.cs b/Oqtane.Server/Managers/UserManager.cs index 20ebc948..cd8f198f 100644 --- a/Oqtane.Server/Managers/UserManager.cs +++ b/Oqtane.Server/Managers/UserManager.cs @@ -144,7 +144,7 @@ namespace Oqtane.Managers user.LastLoginOn = null; user.LastIPAddress = ""; User = _users.AddUser(user); - _syncManager.AddSyncEvent(alias.TenantId, EntityNames.User, User.UserId, SyncEventActions.Create); + _syncManager.AddSyncEvent(alias, EntityNames.User, User.UserId, SyncEventActions.Create); } else { @@ -241,8 +241,8 @@ namespace Oqtane.Managers } user = _users.UpdateUser(user); - _syncManager.AddSyncEvent(_tenantManager.GetAlias().TenantId, EntityNames.User, user.UserId, SyncEventActions.Update); - _syncManager.AddSyncEvent(_tenantManager.GetAlias().TenantId, EntityNames.User, user.UserId, SyncEventActions.Reload); + _syncManager.AddSyncEvent(_tenantManager.GetAlias(), EntityNames.User, user.UserId, SyncEventActions.Update); + _syncManager.AddSyncEvent(_tenantManager.GetAlias(), EntityNames.User, user.UserId, SyncEventActions.Reload); user.Password = ""; // remove sensitive information _logger.Log(LogLevel.Information, this, LogFunction.Update, "User Updated {User}", user); } @@ -291,8 +291,8 @@ namespace Oqtane.Managers { // delete user _users.DeleteUser(userid); - _syncManager.AddSyncEvent(_tenantManager.GetAlias().TenantId, EntityNames.User, userid, SyncEventActions.Delete); - _syncManager.AddSyncEvent(_tenantManager.GetAlias().TenantId, EntityNames.User, userid, SyncEventActions.Reload); + _syncManager.AddSyncEvent(_tenantManager.GetAlias(), EntityNames.User, userid, SyncEventActions.Delete); + _syncManager.AddSyncEvent(_tenantManager.GetAlias(), EntityNames.User, userid, SyncEventActions.Reload); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "User Deleted {UserId}", userid, result.ToString()); } else diff --git a/Oqtane.Server/Pages/Files.cshtml.cs b/Oqtane.Server/Pages/Files.cshtml.cs index f47ce1d2..dd5cea3f 100644 --- a/Oqtane.Server/Pages/Files.cshtml.cs +++ b/Oqtane.Server/Pages/Files.cshtml.cs @@ -92,7 +92,7 @@ namespace Oqtane.Pages { if (download) { - _syncManager.AddSyncEvent(_alias.TenantId, EntityNames.File, file.FileId, "Download"); + _syncManager.AddSyncEvent(_alias, EntityNames.File, file.FileId, "Download"); return PhysicalFile(filepath, file.GetMimeType(), file.Name); } else diff --git a/Oqtane.Server/Pages/Logout.cshtml.cs b/Oqtane.Server/Pages/Logout.cshtml.cs index 6a9f8d30..eaac88f9 100644 --- a/Oqtane.Server/Pages/Logout.cshtml.cs +++ b/Oqtane.Server/Pages/Logout.cshtml.cs @@ -30,7 +30,7 @@ namespace Oqtane.Pages var user = _userManager.GetUser(HttpContext.User.Identity.Name, alias.SiteId); if (user != null) { - _syncManager.AddSyncEvent(alias.TenantId, EntityNames.User, user.UserId, SyncEventActions.Reload); + _syncManager.AddSyncEvent(alias, EntityNames.User, user.UserId, SyncEventActions.Reload); } await HttpContext.SignOutAsync(Constants.AuthenticationScheme); diff --git a/Oqtane.Server/Services/SiteService.cs b/Oqtane.Server/Services/SiteService.cs index 60804ce2..237cac2f 100644 --- a/Oqtane.Server/Services/SiteService.cs +++ b/Oqtane.Server/Services/SiteService.cs @@ -184,9 +184,8 @@ namespace Oqtane.Services { if (_accessor.HttpContext.User.IsInRole(RoleNames.Host)) { - var alias = _tenantManager.GetAlias(); site = _sites.AddSite(site); - _syncManager.AddSyncEvent(alias.TenantId, EntityNames.Site, site.SiteId, SyncEventActions.Create); + _syncManager.AddSyncEvent(_tenantManager.GetAlias(), EntityNames.Site, site.SiteId, SyncEventActions.Create); _logger.Log(site.SiteId, LogLevel.Information, this, LogFunction.Create, "Site Added {Site}", site); } else @@ -205,13 +204,13 @@ namespace Oqtane.Services if (site.SiteId == alias.SiteId && site.TenantId == alias.TenantId && current != null) { site = _sites.UpdateSite(site); - _syncManager.AddSyncEvent(alias.TenantId, EntityNames.Site, site.SiteId, SyncEventActions.Update); + _syncManager.AddSyncEvent(alias, EntityNames.Site, site.SiteId, SyncEventActions.Update); string action = SyncEventActions.Refresh; if (current.RenderMode != site.RenderMode || current.Runtime != site.Runtime) { action = SyncEventActions.Reload; } - _syncManager.AddSyncEvent(alias.TenantId, EntityNames.Site, site.SiteId, action); + _syncManager.AddSyncEvent(alias, EntityNames.Site, site.SiteId, action); _logger.Log(site.SiteId, LogLevel.Information, this, LogFunction.Update, "Site Updated {Site}", site); } else @@ -236,7 +235,7 @@ namespace Oqtane.Services if (site != null && site.SiteId == alias.SiteId) { _sites.DeleteSite(siteId); - _syncManager.AddSyncEvent(alias.TenantId, EntityNames.Site, site.SiteId, SyncEventActions.Delete); + _syncManager.AddSyncEvent(alias, EntityNames.Site, site.SiteId, SyncEventActions.Delete); _logger.Log(siteId, LogLevel.Information, this, LogFunction.Delete, "Site Deleted {SiteId}", siteId); } else diff --git a/Oqtane.Server/Startup.cs b/Oqtane.Server/Startup.cs index 991336a3..0554b3f3 100644 --- a/Oqtane.Server/Startup.cs +++ b/Oqtane.Server/Startup.cs @@ -230,7 +230,7 @@ namespace Oqtane }); // create a global sync event to identify server application startup - sync.AddSyncEvent(-1, EntityNames.Host, -1, SyncEventActions.Reload); + sync.AddSyncEvent(-1, -1, EntityNames.Host, -1, SyncEventActions.Reload); } } } diff --git a/Oqtane.Shared/Models/Sync.cs b/Oqtane.Shared/Models/Sync.cs index f99c0ffd..418a429b 100644 --- a/Oqtane.Shared/Models/Sync.cs +++ b/Oqtane.Shared/Models/Sync.cs @@ -12,6 +12,7 @@ namespace Oqtane.Models public class SyncEvent : EventArgs { public int TenantId { get; set; } + public int SiteId { get; set; } public string EntityName { get; set; } public int EntityId { get; set; } public string Action { get; set; }