From 446b59507760605d7a04cf384f5ef48828aa7c03 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sun, 11 Oct 2026 00:16:44 +0100 Subject: [PATCH] renaming of the 3Blog3 setting => UserFilesRoot --- contrib/template.appsettings-blogs.json | 2 +- contrib/template.appsettings-org.json | 2 +- src/Yavsc.Blogs/Constants.cs | 8 -------- .../Controllers/FileSystemApiController.cs | 2 +- src/Yavsc.Blogs/Program.cs | 5 ++--- src/Yavsc.Blogs/appsettings-blogs.json | 2 +- .../Controllers/Accounting/ManageController.cs | 4 ++-- src/Yavsc.Org/Extensions/HostingExtensions.cs | 4 ++-- src/Yavsc.Org/Startup.cs | 4 ++-- .../ViewComponents/DirectoryViewComponent.cs | 2 +- src/Yavsc.Org/appsettings-org.json | 2 +- src/Yavsc.Server/Helpers/FileSystemHelpers.cs | 14 +++++++------- src/Yavsc.Server/Services/BlogSpotService.cs | 4 ++-- src/Yavsc.Server/Settings/SiteSettings.cs | 2 +- .../Fixtures/BlogsWebServerFixture.cs | 2 +- .../Fixtures/MappedClaimsBlogsWebServerFixture.cs | 2 +- src/test/Yavsc.Org.Tests/appsettings.json | 4 ++-- .../Fixtures/ServerServicesFixture.cs | 4 ++-- 18 files changed, 30 insertions(+), 39 deletions(-) delete mode 100644 src/Yavsc.Blogs/Constants.cs diff --git a/contrib/template.appsettings-blogs.json b/contrib/template.appsettings-blogs.json index f522feaca..6f8fa02bc 100644 --- a/contrib/template.appsettings-blogs.json +++ b/contrib/template.appsettings-blogs.json @@ -8,7 +8,7 @@ "CorsAllowedOrigins": [ "https://preprod-api.$DOMAIN" ], - "Blog": "blog" + "UserFilesRoot": "files" }, "ConnectionStrings": { "YavscConnection": "Server=localhost;Port=5432;Database=lame-db-name;Username=lame-user-name;Password=lame-password;" diff --git a/contrib/template.appsettings-org.json b/contrib/template.appsettings-org.json index 76203d9e9..c330f5f32 100644 --- a/contrib/template.appsettings-org.json +++ b/contrib/template.appsettings-org.json @@ -30,7 +30,7 @@ "EMail": "paul@pschneider.fr" }, "Quota": 200000000, - "Blog": "blog", + "UserFilesRoot": "files", "Avatars": "avatars", "Bills": "bills", "TempDir": "temp", diff --git a/src/Yavsc.Blogs/Constants.cs b/src/Yavsc.Blogs/Constants.cs deleted file mode 100644 index 9d400032d..000000000 --- a/src/Yavsc.Blogs/Constants.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Yavsc.Blogs; - -public static class BlogConstants -{ - public const string AdminRole = "Admin"; - public const string ModeratorRole = "Moderator"; - public const string UserRole = "User"; -} diff --git a/src/Yavsc.Blogs/Controllers/FileSystemApiController.cs b/src/Yavsc.Blogs/Controllers/FileSystemApiController.cs index e67b366a5..eb4433d4f 100644 --- a/src/Yavsc.Blogs/Controllers/FileSystemApiController.cs +++ b/src/Yavsc.Blogs/Controllers/FileSystemApiController.cs @@ -200,7 +200,7 @@ namespace Yavsc.Blogs.Controllers if (string.IsNullOrEmpty(ownerUserName)) return NotFound(new { error = "owner not found" }); - var physicalPath = Path.Combine(siteSettings.Blog, ownerUserName, file.Path ?? ""); + var physicalPath = Path.Combine(siteSettings.UserFilesRoot, ownerUserName, file.Path ?? ""); var fi = new FileInfo(physicalPath); if (!fi.Exists) return NotFound(new { error = "file not on disk" }); diff --git a/src/Yavsc.Blogs/Program.cs b/src/Yavsc.Blogs/Program.cs index 6d69c6785..cf8ec716d 100644 --- a/src/Yavsc.Blogs/Program.cs +++ b/src/Yavsc.Blogs/Program.cs @@ -9,7 +9,6 @@ using Yavsc.Models; using Yavsc.Services; using Yavsc.Server.Helpers; using Microsoft.AspNetCore.Identity; -using Microsoft.Extensions.Options; namespace Yavsc.Blogs; internal class Program @@ -85,9 +84,9 @@ internal class Program }) .Configure(settings => { - if (settings.Blog == null) + if (settings.UserFilesRoot == null) { - settings.Blog = "blog"; + settings.UserFilesRoot = "blog"; } }); diff --git a/src/Yavsc.Blogs/appsettings-blogs.json b/src/Yavsc.Blogs/appsettings-blogs.json index 5361bfc3b..96c7e758e 100644 --- a/src/Yavsc.Blogs/appsettings-blogs.json +++ b/src/Yavsc.Blogs/appsettings-blogs.json @@ -9,7 +9,7 @@ "https://localhost:5005", "https://api.pschneider.fr" ], - "Blog": "blog" + "UserFilesRoot": "files" }, "ConnectionStrings": { "YavscConnection": "Server=localhost;Port=5432;Database=lame-db-name;Username=lame-user-name;Password=lame-password;" diff --git a/src/Yavsc.Org/Controllers/Accounting/ManageController.cs b/src/Yavsc.Org/Controllers/Accounting/ManageController.cs index 32357c2c5..f6b211018 100644 --- a/src/Yavsc.Org/Controllers/Accounting/ManageController.cs +++ b/src/Yavsc.Org/Controllers/Accounting/ManageController.cs @@ -421,9 +421,9 @@ namespace Yavsc.Controllers { // Renames the blog files var userdirinfo = new DirectoryInfo( - Path.Combine(_siteSettings.Blog, + Path.Combine(_siteSettings.UserFilesRoot, oldUserName)); - var newdir = Path.Combine(_siteSettings.Blog, + var newdir = Path.Combine(_siteSettings.UserFilesRoot, model.UserName); if (userdirinfo.Exists) userdirinfo.MoveTo(newdir); diff --git a/src/Yavsc.Org/Extensions/HostingExtensions.cs b/src/Yavsc.Org/Extensions/HostingExtensions.cs index 481d604bf..79aaad6fb 100644 --- a/src/Yavsc.Org/Extensions/HostingExtensions.cs +++ b/src/Yavsc.Org/Extensions/HostingExtensions.cs @@ -1267,7 +1267,7 @@ ADD COLUMN IF NOT EXISTS ""Moderated"" boolean NOT NULL DEFAULT FALSE;"); { throw new InvalidOperationException("GitRepository path is not configured in SiteSettings."); } - if (settings.Blog == null) + if (settings.UserFilesRoot == null) { throw new InvalidOperationException("Blog path is not configured in SiteSettings."); } @@ -1284,7 +1284,7 @@ ADD COLUMN IF NOT EXISTS ""Moderated"" boolean NOT NULL DEFAULT FALSE;"); throw new InvalidOperationException("TempDir path is not configured in SiteSettings."); } - var userFilesDirInfo = new DirectoryInfo(settings.Blog); + var userFilesDirInfo = new DirectoryInfo(settings.UserFilesRoot); if (!userFilesDirInfo.Exists) userFilesDirInfo.Create(); diff --git a/src/Yavsc.Org/Startup.cs b/src/Yavsc.Org/Startup.cs index ee5c13af2..7c4336905 100644 --- a/src/Yavsc.Org/Startup.cs +++ b/src/Yavsc.Org/Startup.cs @@ -23,10 +23,10 @@ public class Startup ResourcesHelpers.GlobalLocalizer = localizer; Config.SmtpSetup = smtpSettings.Value; Config.Authority = siteSettings.Value.Authority; - string blogsDir = siteSettings.Value.Blog ?? throw new Exception("blogsDir is not set."); + string blogsDir = siteSettings.Value.UserFilesRoot ?? throw new Exception("blogsDir is not set."); string billsDir = siteSettings.Value.Bills ?? throw new Exception("billsDir is not set."); string tempDir = siteSettings.Value.TempDir ?? throw new Exception("tempDir is not set."); - + Config.PayPalSettings = payPalSettings.Value; AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true); diff --git a/src/Yavsc.Org/ViewComponents/DirectoryViewComponent.cs b/src/Yavsc.Org/ViewComponents/DirectoryViewComponent.cs index fb8748d3c..0410e291c 100644 --- a/src/Yavsc.Org/ViewComponents/DirectoryViewComponent.cs +++ b/src/Yavsc.Org/ViewComponents/DirectoryViewComponent.cs @@ -28,7 +28,7 @@ namespace Yavsc.ViewComponents { string uid = ViewContext.HttpContext.User.GetUserId(); return View(new UserDirectoryInfo( - siteSettings.Blog, + siteSettings.UserFilesRoot, uid, dirname)); } } diff --git a/src/Yavsc.Org/appsettings-org.json b/src/Yavsc.Org/appsettings-org.json index 58aa287ae..25e017bfd 100644 --- a/src/Yavsc.Org/appsettings-org.json +++ b/src/Yavsc.Org/appsettings-org.json @@ -31,7 +31,7 @@ "Avatars": "avatars", "Quota": 200000000, "Bills": "bills", - "Blog": "blog", + "UserFilesRoot": "files", "TempDir": "temp", "DataDir": "data", "GitRepository": "git" diff --git a/src/Yavsc.Server/Helpers/FileSystemHelpers.cs b/src/Yavsc.Server/Helpers/FileSystemHelpers.cs index e0d5b8b9d..3d903e36f 100644 --- a/src/Yavsc.Server/Helpers/FileSystemHelpers.cs +++ b/src/Yavsc.Server/Helpers/FileSystemHelpers.cs @@ -44,7 +44,7 @@ namespace Yavsc.Server.Helpers this ClaimsPrincipal user, string subpath, SiteSettings siteSettings) { - var root = Path.Combine(siteSettings.Blog, user.GetUserName()); + var root = Path.Combine(siteSettings.UserFilesRoot, user.GetUserName()); if (!string.IsNullOrWhiteSpace(subpath)) { if (!subpath.IsValidYavscPath()) @@ -67,7 +67,7 @@ namespace Yavsc.Server.Helpers public static void DeleteUserFile(this ApplicationUser user, string fileName, SiteSettings siteSettings) { - var root = Path.Combine(siteSettings.Blog, user.UserName); + var root = Path.Combine(siteSettings.UserFilesRoot, user.UserName); var fi = new FileInfo(Path.Combine(root, fileName)); if (!fi.Exists) return; // Capture the length BEFORE deleting: FileInfo.Length throws @@ -80,7 +80,7 @@ namespace Yavsc.Server.Helpers public static FsOperationInfo DeleteUserDirOrFile(this ApplicationUser user, string dirName, SiteSettings siteSettings) { - var root = Path.Combine(siteSettings.Blog, user.UserName); + var root = Path.Combine(siteSettings.UserFilesRoot, user.UserName); if (string.IsNullOrEmpty(dirName)) return new FsOperationInfo { Done = false, ErrorCode = ErrorCode.InvalidRequest, ErrorMessage = "specify a directory or file name" }; @@ -110,7 +110,7 @@ namespace Yavsc.Server.Helpers public static FsOperationInfo MoveUserDir(this ApplicationUser user, string fromDirName, string toDirName, SiteSettings siteSettings) { - var root = Path.Combine(siteSettings.Blog, user.UserName); + var root = Path.Combine(siteSettings.UserFilesRoot, user.UserName); if (string.IsNullOrEmpty(fromDirName)) return new FsOperationInfo { Done = false, ErrorCode = ErrorCode.InvalidRequest, ErrorMessage = "specify a dir name " }; @@ -136,7 +136,7 @@ namespace Yavsc.Server.Helpers } public static FsOperationInfo MoveUserFileToDir(this ApplicationUser user, string fileNameFrom, string fileNameDest, SiteSettings siteSettings) { - var root = Path.Combine(siteSettings.Blog, user.UserName); + var root = Path.Combine(siteSettings.UserFilesRoot, user.UserName); var fi = new FileInfo(Path.Combine(root, fileNameFrom)); if (!fi.Exists) return new FsOperationInfo { Done = false, ErrorCode = ErrorCode.NotFound, ErrorMessage = "no file to move" }; string dest; @@ -151,7 +151,7 @@ namespace Yavsc.Server.Helpers } public static FsOperationInfo MoveUserFile(this ApplicationUser user, string fileNameFrom, string fileNameDest, SiteSettings siteSettings) { - var root = Path.Combine(siteSettings.Blog, user.UserName); + var root = Path.Combine(siteSettings.UserFilesRoot, user.UserName); var fi = new FileInfo(Path.Combine(root, fileNameFrom)); if (!fi.Exists) return new FsOperationInfo { Done = false, ErrorCode = ErrorCode.NotFound, ErrorMessage = "no file to move" }; var fo = new FileInfo(Path.Combine(root, fileNameDest)); @@ -318,7 +318,7 @@ namespace Yavsc.Server.Helpers public static UserDirectoryInfo GetUserFiles(SiteSettings settings, string userId, string subdir) { - UserDirectoryInfo di = new UserDirectoryInfo(settings.Blog, userId, subdir); + UserDirectoryInfo di = new UserDirectoryInfo(settings.UserFilesRoot, userId, subdir); return di; } diff --git a/src/Yavsc.Server/Services/BlogSpotService.cs b/src/Yavsc.Server/Services/BlogSpotService.cs index 5d2ad5eaa..49e351297 100644 --- a/src/Yavsc.Server/Services/BlogSpotService.cs +++ b/src/Yavsc.Server/Services/BlogSpotService.cs @@ -36,7 +36,7 @@ public class BlogSpotService _context = context; this.fileSystemAuthManager = fileSystemAuthManager; this.siteSettings = siteSettings.Value; - if (siteSettings.Value.Blog == null) + if (siteSettings.Value.UserFilesRoot == null) { throw new InvalidOperationException("SiteSettings.Blog is not configured."); } @@ -56,7 +56,7 @@ public class BlogSpotService { string blogFilesSubdir = $"blogs/{postId}"; string destDir = Path.Combine( - siteSettings.Blog, + siteSettings.UserFilesRoot, user.UserName, blogFilesSubdir); var di = new DirectoryInfo(destDir); diff --git a/src/Yavsc.Server/Settings/SiteSettings.cs b/src/Yavsc.Server/Settings/SiteSettings.cs index 0406155e5..c31b98812 100644 --- a/src/Yavsc.Server/Settings/SiteSettings.cs +++ b/src/Yavsc.Server/Settings/SiteSettings.cs @@ -49,7 +49,7 @@ namespace Yavsc public string DataDir { get; set; } public string Avatars { get; set; } public long Quota { get; set; } - public string Blog { get; set; } + public string UserFilesRoot { get; set; } public string Bills { get; set; } public string GitRepository { get; set; } diff --git a/src/test/Yavsc.Blogs.Tests/Fixtures/BlogsWebServerFixture.cs b/src/test/Yavsc.Blogs.Tests/Fixtures/BlogsWebServerFixture.cs index d677e47bb..1e0dd81f7 100644 --- a/src/test/Yavsc.Blogs.Tests/Fixtures/BlogsWebServerFixture.cs +++ b/src/test/Yavsc.Blogs.Tests/Fixtures/BlogsWebServerFixture.cs @@ -131,7 +131,7 @@ public sealed class BlogsWebServerFixture : WebHostFixture // on real files. builder.Services.Configure(s => { - s.Blog = BlogFilesRoot; + s.UserFilesRoot = BlogFilesRoot; }); // Real BlogSpotService — same instance the production host diff --git a/src/test/Yavsc.Blogs.Tests/Fixtures/MappedClaimsBlogsWebServerFixture.cs b/src/test/Yavsc.Blogs.Tests/Fixtures/MappedClaimsBlogsWebServerFixture.cs index df977dc4e..6e6b70a09 100644 --- a/src/test/Yavsc.Blogs.Tests/Fixtures/MappedClaimsBlogsWebServerFixture.cs +++ b/src/test/Yavsc.Blogs.Tests/Fixtures/MappedClaimsBlogsWebServerFixture.cs @@ -49,7 +49,7 @@ public sealed class MappedClaimsBlogsWebServerFixture : IDisposable, IBackendFix // BlogsWebServerFixture. builder.Services.Configure(s => { - s.Blog = Path.Combine(Path.GetTempPath(), "postit-blogs-mappedclaims-" + Guid.NewGuid().ToString("N")); + s.UserFilesRoot = Path.Combine(Path.GetTempPath(), "postit-blogs-mappedclaims-" + Guid.NewGuid().ToString("N")); }); builder.Services.AddScoped(); builder.Services.AddScoped(); diff --git a/src/test/Yavsc.Org.Tests/appsettings.json b/src/test/Yavsc.Org.Tests/appsettings.json index f21f348ae..1805fd855 100644 --- a/src/test/Yavsc.Org.Tests/appsettings.json +++ b/src/test/Yavsc.Org.Tests/appsettings.json @@ -9,9 +9,9 @@ "FavIcon": "/favicon.ico", "Icon": "/images/yavsc.png", "GitRepository": "testingrepo", - "Blog": "blog", + "UserFilesRoot": "files", "Bills": "bills", - "TempDir": "temp", + "TempDir": "temp", "Avatars": "avatars", "Owner": { "Name": "Site Owner Name", diff --git a/src/test/Yavsc.Server.Tests/Fixtures/ServerServicesFixture.cs b/src/test/Yavsc.Server.Tests/Fixtures/ServerServicesFixture.cs index f57f65839..22bf549f2 100644 --- a/src/test/Yavsc.Server.Tests/Fixtures/ServerServicesFixture.cs +++ b/src/test/Yavsc.Server.Tests/Fixtures/ServerServicesFixture.cs @@ -115,7 +115,7 @@ public sealed class ServerServicesFixture : IDisposable // Details itself doesn't read it, but the service constructor // throws if SiteSettings.Blog is null, so configure a temp // value to keep construction alive. - services.Configure(s => s.Blog = "server-tests-files-root"); + services.Configure(s => s.UserFilesRoot = "server-tests-files-root"); // Trivial file-system auth: Details never calls into it, but // the DI container needs an instance to construct the service. @@ -449,4 +449,4 @@ public sealed class ServerServicesFixture : IDisposable public void SetAccess(long circleId, string normalizedFullPath, FileAccessRight access) { } } -} \ No newline at end of file +}