webdav portal root folder speed fix
This commit is contained in:
parent
c5b6c0d9f6
commit
7d075f6142
4 changed files with 147 additions and 22 deletions
|
@ -47,7 +47,7 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
|
||||
if (string.IsNullOrWhiteSpace(pathPart))
|
||||
{
|
||||
children = ConnectToWebDavServer().Select(x => new WebDavResource
|
||||
children = GetWebDavRootItems().Select(x => new WebDavResource
|
||||
{
|
||||
Href = new Uri(x.Url),
|
||||
ItemType = ItemType.Folder,
|
||||
|
@ -82,10 +82,9 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
|
||||
SystemFile[] items;
|
||||
|
||||
|
||||
if (string.IsNullOrWhiteSpace(pathPart))
|
||||
{
|
||||
var rootItems = ConnectToWebDavServer().Select(x => x.Name).ToList();
|
||||
var rootItems = GetWebDavRootItems().Select(x => x.Name).ToList();
|
||||
rootItems.Insert(0, string.Empty);
|
||||
|
||||
items = WspContext.Services.EnterpriseStorage.SearchFiles(itemId, rootItems.ToArray(), searchValue, uesrPrincipalName, recursive);
|
||||
|
@ -285,28 +284,11 @@ namespace WebsitePanel.WebDav.Core.Managers
|
|||
}
|
||||
}
|
||||
|
||||
private IList<SystemFile> ConnectToWebDavServer()
|
||||
private IList<SystemFile> GetWebDavRootItems()
|
||||
{
|
||||
var rootFolders = new List<SystemFile>();
|
||||
var user = WspContext.User;
|
||||
|
||||
var userGroups = WSP.Services.Organizations.GetSecurityGroupsByMember(user.ItemId, user.AccountId);
|
||||
|
||||
foreach (var folder in WSP.Services.EnterpriseStorage.GetEnterpriseFolders(WspContext.User.ItemId))
|
||||
{
|
||||
var permissions = WSP.Services.EnterpriseStorage.GetEnterpriseFolderPermissions(WspContext.User.ItemId, folder.Name);
|
||||
|
||||
foreach (var permission in permissions)
|
||||
{
|
||||
if ((!permission.IsGroup
|
||||
&& (permission.DisplayName == user.UserName || permission.DisplayName == user.DisplayName))
|
||||
|| (permission.IsGroup && userGroups.Any(x => x.DisplayName == permission.DisplayName)))
|
||||
{
|
||||
rootFolders.Add(folder);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
var rootFolders = WspContext.Services.EnterpriseStorage.GetUserRootFolders(user.ItemId, user.AccountId,user.UserName, user.DisplayName);
|
||||
|
||||
return rootFolders;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue