| 1234567891011121314151617181920212223242526272829303132333435 |
- using SharedKernel;
- using Admin.Constants;
- using Microsoft.AspNetCore.Authorization;
- using Microsoft.Extensions.Options;
- namespace Admin.Pages.Shared.Layout
- {
- public class LayoutDataProvider : ILayoutDataProvider
- {
- private readonly AppSettings _settings;
- private readonly IAuthorizationService _authorizationService;
- public LayoutDataProvider(IOptions<AppSettings> options, IAuthorizationService authorizationService)
- {
- _settings = options.Value;
- _authorizationService = authorizationService;
- }
- public async Task<LayoutViewModel> CreateAsync(HttpContext context)
- {
- var user = context.User;
- // Identity 권한/역할 기반 메뉴 필터링
- var filteredMenus = await Menus.FilterForUserAsync(user, _authorizationService);
- return new LayoutViewModel
- {
- UserName = user.Identity?.Name ?? "Guest",
- Role = user.FindFirst("role")?.Value ?? string.Empty,
- AppSettings = _settings,
- Menus = filteredMenus
- };
- }
- }
- }
|