- 修复RouteService中错误过滤home路由的问题 - 后端现在正确返回所有用户有权限的路由 - 添加设备管理相关功能(列表、在线监控、电源管理、远程监控) - 添加详细的修复文档和重启脚本 - 更新权限配置脚本 问题根源:后端代码中有逻辑会过滤掉home路由,导致前端收到空数组,无法生成菜单 解决方案:移除过滤home路由的逻辑,让后端返回所有有权限的路由
101 lines
2.6 KiB
C#
101 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Management.Automation;
|
|
using System.Management.Automation.Provider;
|
|
|
|
namespace Intel.Management.PSModule
|
|
{
|
|
class DriveInfo : PSDriveInfo
|
|
{
|
|
protected DriveContainer _root;
|
|
ChildWriter _defaultWriter;
|
|
|
|
public DriveInfo(PSDriveInfo driveInfo)
|
|
: base(driveInfo)
|
|
{
|
|
|
|
}
|
|
|
|
public DriveItem GetItemFromPath(string path)
|
|
{
|
|
return GetItemFromPath(path, null);
|
|
}
|
|
|
|
public virtual DriveItem GetItemFromPath(string path,DriveProvider provider)
|
|
{
|
|
char[] pathChar = { '\\', '/' };
|
|
string[] paths = path.Split(pathChar, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
|
|
//find item in path
|
|
DriveItem parent = _root;
|
|
DriveItem foundItem = null;
|
|
|
|
if (string.Compare(path, _root.Name, true) == 0 ||
|
|
string.Compare(path, "\\", true)==0 ||
|
|
string.Compare(path, "/", true)==0)
|
|
{
|
|
foundItem = _root;
|
|
}
|
|
|
|
if (_defaultWriter == null)
|
|
_defaultWriter = new ChildWriter();
|
|
|
|
for (int i = 0; i < paths.Length; i++)
|
|
{
|
|
foundItem = null;
|
|
|
|
|
|
if (parent is DriveContainer)
|
|
{
|
|
DriveContainer parentContainer = parent as DriveContainer;
|
|
|
|
_defaultWriter.Provider = provider;
|
|
_defaultWriter.SetParent(parentContainer);
|
|
try
|
|
{
|
|
|
|
_defaultWriter.Flush();
|
|
}
|
|
finally
|
|
{
|
|
_defaultWriter.SetParent(null);
|
|
_defaultWriter.Provider = null;
|
|
}
|
|
|
|
|
|
DriveItem[] items = parentContainer.GetChildItems();
|
|
|
|
foreach (DriveItem childItem in items)
|
|
{
|
|
|
|
if (string.Compare(childItem.Name, paths[i], true) == 0)
|
|
{
|
|
foundItem = childItem;
|
|
parent = foundItem;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if (foundItem == null)//path not correct
|
|
{
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
return foundItem;
|
|
}
|
|
|
|
public ChildWriter DefaultWriter
|
|
{
|
|
get { return _defaultWriter; }
|
|
}
|
|
|
|
|
|
}
|
|
}
|