|
@@ -159,7 +159,14 @@ public static class DynamicGridUtils
|
|
|
}
|
|
|
_manytomanytomanypages[type] = pageTypes.ToArray();
|
|
|
}
|
|
|
- pages.AddRange(pageTypes.Select(x => (Activator.CreateInstance(x) as IDynamicEditorPage)!));
|
|
|
+ foreach(var pageType in pageTypes)
|
|
|
+ {
|
|
|
+ var entityType = pageType.GetSuperclassDefinition(typeof(DynamicGrid<>))!.GenericTypeArguments[0];
|
|
|
+ if (Security.CanView(entityType))
|
|
|
+ {
|
|
|
+ pages.Add((Activator.CreateInstance(pageType) as IDynamicEditorPage)!);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public static IEnumerable<Type> GetOneToManyTypes(Type type)
|
|
@@ -187,7 +194,6 @@ public static class DynamicGridUtils
|
|
|
{
|
|
|
if (ClientFactory.IsSupported(map))
|
|
|
{
|
|
|
-
|
|
|
_allo2mpages ??= CoreUtils.Entities.Where(
|
|
|
x =>
|
|
|
x.IsClass
|
|
@@ -217,7 +223,14 @@ public static class DynamicGridUtils
|
|
|
|
|
|
_onetomanypages[type] = pageTypes.ToArray();
|
|
|
}
|
|
|
- pages.AddRange(pageTypes.Select(x => (Activator.CreateInstance(x) as IDynamicEditorPage)!));
|
|
|
+ foreach(var pageType in pageTypes)
|
|
|
+ {
|
|
|
+ var entityType = pageType.GetSuperclassDefinition(typeof(DynamicGrid<>))!.GenericTypeArguments[0];
|
|
|
+ if (Security.CanView(entityType))
|
|
|
+ {
|
|
|
+ pages.Add((Activator.CreateInstance(pageType) as IDynamicEditorPage)!);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
public static void LoadCustomEditorPages(Type type, DynamicEditorPages pages)
|
|
@@ -655,7 +668,7 @@ public static class DynamicGridUtils
|
|
|
/// <param name="customiseGrid"></param>
|
|
|
/// <returns></returns>
|
|
|
public static bool EditEntity<T>(T item, Func<Type, CoreTable?>? pageDataHandler = null, bool preloadPages = false, Action<DynamicGrid<T>>? customiseGrid = null)
|
|
|
- where T : Entity, new()
|
|
|
+ where T : BaseObject, new()
|
|
|
{
|
|
|
var grid = CreateDynamicGrid<T>(typeof(DynamicGrid<>));
|
|
|
customiseGrid?.Invoke(grid);
|
|
@@ -672,7 +685,7 @@ public static class DynamicGridUtils
|
|
|
/// <param name="customiseGrid"></param>
|
|
|
/// <returns></returns>
|
|
|
public static bool EditEntities<T>(T[] items, Func<Type, CoreTable?>? pageDataHandler = null, bool preloadPages = false, Action<DynamicGrid<T>>? customiseGrid = null)
|
|
|
- where T : Entity, new()
|
|
|
+ where T : BaseObject, new()
|
|
|
{
|
|
|
var grid = CreateDynamicGrid<T>(typeof(DynamicGrid<>));
|
|
|
customiseGrid?.Invoke(grid);
|