| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- using Abp.Domain.Repositories;
- using Abp.Domain.Uow;
- using Abp.Runtime.Caching;
- using Microsoft.AspNetCore.Mvc;
- using VberAdmin.Web.Models.Search;
- using VberZero;
- using VberZero.BaseSystem;
- using VberZero.Session;
- namespace VberAdmin.Web.Views.Shared.Components.TableToolBar;
- public class TableToolBarViewComponent : VberAdminViewComponent
- {
- public TableToolBarViewComponent(IRepository<SysFunction, int?> funRepository, ICacheManager cacheManager, IUnitOfWorkManager unitOfWorkManager)
- {
- FunRepository = funRepository;
- CacheManager = cacheManager;
- _unitOfWorkManager = unitOfWorkManager;
- }
- private readonly IUnitOfWorkManager _unitOfWorkManager;
- private readonly IRepository<SysFunction, int?> FunRepository;
- protected readonly ICacheManager CacheManager;
- public async Task<IViewComponentResult> InvokeAsync(string activeMenu = "", object searchView = null)
- {
- ViewBag.ActiveMenu = activeMenu;
- var model = new TableToolBarViewModel();
- try
- {
- model.Search = (VmSearch)searchView;
- }
- catch
- {
- model.Search = null;
- }
- if (string.IsNullOrEmpty(activeMenu))
- {
- return View(model);
- }
- var permission = PermissionManager.GetPermissionOrNull(activeMenu);
- if (permission != null)
- {
- var userName = AbpSession.GetUserName();
- foreach (var child in permission.Children)
- {
- if (await PermissionChecker.IsGrantedAsync(child.Name))
- {
- var fun = await CacheManager.GetCache<string, SysFunction>(VzConsts.CacheFunction)
- .GetAsync(child.Name, async () =>
- {
- using var u = _unitOfWorkManager.Begin();
- var f = await FunRepository.FirstOrDefaultAsync(a => a.PermissionName == child.Name);
- await u.CompleteAsync();
- return f;
- });
- if (fun == null || fun.FunctionType != VzDefinition.FunctionType.Button || fun.Script.ToLower() == "none")
- {
- continue;
- }
- if (fun.Script != null && (fun.Script.ToLower().StartsWith("admin") ||
- fun.Script.ToLower().StartsWith("_admin")) &&
- userName != VberZero.BaseSystem.Users.User.AdminUserName && userName != VberZero.BaseSystem.Users.User.SystemUserName)
- {
- continue;
- }
- var menu = new TableToolMenuViewModel(fun)
- {
- DisplayName = L(fun.PermissionName?.Replace(".", "") ?? "none")
- };
- if (menu.Script.Contains("_"))
- {
- menu.Script = menu.Script.Substring(menu.Script.LastIndexOf("_", StringComparison.Ordinal));
- model.Menu.Add(menu);
- }
- else
- {
- model.SelectionMenu.Add(menu);
- }
- }
- }
- }
- return View(model);
- }
- }
|