fix #3420 - auto create user folder for Host user if it does not exist for site
This commit is contained in:
parent
fd89757814
commit
9c833a8a95
|
@ -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<Permission>
|
||||
{
|
||||
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;
|
||||
|
|
Loading…
Reference in New Issue
Block a user