From 9c833a8a951eceddef193c0e09b47bcd2b686050 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Fri, 10 Nov 2023 13:49:11 -0500 Subject: [PATCH] fix #3420 - auto create user folder for Host user if it does not exist for site --- Oqtane.Server/Controllers/FolderController.cs | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Oqtane.Server/Controllers/FolderController.cs b/Oqtane.Server/Controllers/FolderController.cs index 616b24d2..71190c2d 100644 --- a/Oqtane.Server/Controllers/FolderController.cs +++ b/Oqtane.Server/Controllers/FolderController.cs @@ -95,6 +95,33 @@ namespace Oqtane.Controllers folderPath += "/"; } Folder folder = _folders.GetFolder(siteId, folderPath); + if (folder == null && User.IsInRole(RoleNames.Host) && path.StartsWith("Users/")) + { + // create the user folder on this site for the host user + var userId = int.Parse(path.ReplaceMultiple(new string[] { "Users", "/" }, "")); + folder = _folders.GetFolder(siteId, "Users/"); + if (folder != null) + { + folder = _folders.AddFolder(new Folder + { + SiteId = folder.SiteId, + ParentId = folder.FolderId, + Name = "My Folder", + Type = FolderTypes.Private, + Path = path, + Order = 1, + ImageSizes = "", + Capacity = Constants.UserFolderCapacity, + IsSystem = true, + PermissionList = new List + { + new Permission(PermissionNames.Browse, userId, true), + new Permission(PermissionNames.View, RoleNames.Everyone, true), + new Permission(PermissionNames.Edit, userId, true) + } + }); + } + } if (folder != null && folder.SiteId == _alias.SiteId && _userPermissions.IsAuthorized(User, PermissionNames.View, folder.PermissionList)) { return folder;