这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

55 lines
2.3 KiB

using LINGYUN.Abp.MessageService.Permissions;
using System.Collections.Generic;
using System.Linq;
namespace Hangfire
{
public class HangfireDashboardRouteOptions
{
public IList<string> AllowFrameOrigins { get; }
public IDictionary<string, string> RoutePermissions { get; }
public HangfireDashboardRouteOptions()
{
AllowFrameOrigins = new List<string>();
RoutePermissions = new Dictionary<string, string>();
InitDefaultRoutes();
}
public void WithOrigins(params string[] origins)
{
AllowFrameOrigins.AddIfNotContains(origins);
}
public void WithPermission(string route, string permission)
{
RoutePermissions.Add(route, permission);
}
public string GetPermission(string route)
{
var permission = RoutePermissions
.Where(x => x.Key.StartsWith(route))
.Select(x => x.Value)
.FirstOrDefault();
return permission;
}
private void InitDefaultRoutes()
{
WithPermission("/hangfire", AbpMessageServicePermissions.Hangfire.Default);
WithPermission("/stats", AbpMessageServicePermissions.Hangfire.Default);
WithPermission("/servers", AbpMessageServicePermissions.Hangfire.Default);
WithPermission("/retries", AbpMessageServicePermissions.Hangfire.Default);
WithPermission("/recurring", AbpMessageServicePermissions.Hangfire.Default);
WithPermission("/jobs/enqueued", AbpMessageServicePermissions.Hangfire.ManageQueue);
WithPermission("/jobs/processing", AbpMessageServicePermissions.Hangfire.ManageQueue);
WithPermission("/jobs/scheduled", AbpMessageServicePermissions.Hangfire.ManageQueue);
WithPermission("/jobs/failed", AbpMessageServicePermissions.Hangfire.ManageQueue);
WithPermission("/jobs/deleted", AbpMessageServicePermissions.Hangfire.ManageQueue);
WithPermission("/jobs/awaiting", AbpMessageServicePermissions.Hangfire.ManageQueue);
WithPermission("/jobs/actions", AbpMessageServicePermissions.Hangfire.ManageQueue);
WithPermission("/jobs/details", AbpMessageServicePermissions.Hangfire.ManageQueue);
}
}
}