lvfengfree b92e1119ae fix: 修复菜单为空问题 - 移除后端过滤home路由的错误逻辑
- 修复RouteService中错误过滤home路由的问题
- 后端现在正确返回所有用户有权限的路由
- 添加设备管理相关功能(列表、在线监控、电源管理、远程监控)
- 添加详细的修复文档和重启脚本
- 更新权限配置脚本

问题根源:后端代码中有逻辑会过滤掉home路由,导致前端收到空数组,无法生成菜单
解决方案:移除过滤home路由的逻辑,让后端返回所有有权限的路由
2026-03-01 09:50:19 +08:00

138 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Intel.Management.PSModule
{
class DriveContainer : DriveItem
{
//cached items in container
protected DriveItem[] _items;
protected static readonly DriveItem[] _emptyContainer = new DriveItem[0];
public DriveContainer(string name,DriveItem parent)
: base(name,new Container(), parent)
{
_items = null;
}
public DriveContainer(string name, DriveItem[] items, DriveItem parent)
: base(name,new Container(),parent)
{
_items = items;
}
public DriveContainer(string name, DriveItem item, DriveItem parent)
: base(name, new Container(),parent)
{
_items = new DriveItem[1];
_items[0] = item;
item.SetParent(this);
}
public void SetChildItems(DriveItem[] items)
{
_items = items;
}
public DriveItem[] GetChildItems()
{
return _items;
}
public override void Clear()
{
_items = null;
}
public virtual void GetChildItems(ChildWriter childWriter)
{
}
public override void RemoveItem(DriveProvider provider)
{
//RemoveChildItem(this);
}
public override bool RemoveChildItem(DriveItem itemToRemove)
{
return RemoveChildItem(itemToRemove,false);
}
public bool RemoveChildItem(DriveItem itemToRemove,bool recurse)
{
List<DriveItem> list = new List<DriveItem>();
if (_items != null) list.AddRange(_items);
bool result = list.Remove(itemToRemove);
if (result)
{
list.Sort(_defaultComparer);
_items = list.ToArray();
}
else if (recurse)
{
foreach (DriveItem item in list)
{
if (item is DriveContainer)
{
result = ((DriveContainer)item).RemoveChildItem(itemToRemove,recurse);
if (result) break;
}
}
}
return result;
}
protected List<DriveItem> GetChildList()
{
List<DriveItem> list = null;
if (_items == null)
list = new List<DriveItem>();
else
list = new List<DriveItem>(_items);
return list;
}
protected DriveContainer Parent
{
get
{
return _parent as DriveContainer;
}
}
public override void AddChildItem(DriveItem itemToAdd)
{
List<DriveItem> list = new List<DriveItem>();
if (_items != null)list.AddRange(_items);
list.Add(itemToAdd);
list.Sort(_defaultComparer);
_items = list.ToArray();
}
public override object GetReturnObject()
{
return new NameValuePairItem(Name, Value);
}
}
}