Fix admin route access and backend configuration

- Added /admin redirect to login page in nginx config
- Fixed backend server.js route ordering for proper admin handling
- Updated authentication middleware and routes
- Added user management routes
- Configured PostgreSQL integration
- Updated environment configuration
This commit is contained in:
Local Server
2025-12-13 22:34:11 -06:00
parent 8bb6430a70
commit 703ab57984
253 changed files with 29870 additions and 157 deletions

View File

@@ -0,0 +1,22 @@
using Microsoft.AspNetCore.Mvc;
using SkyArtShop.Models;
using SkyArtShop.Services;
namespace SkyArtShop.ViewComponents
{
public class FooterPagesViewComponent : ViewComponent
{
private readonly MongoDBService _mongoService;
public FooterPagesViewComponent(MongoDBService mongoService)
{
_mongoService = mongoService;
}
public async Task<IViewComponentResult> InvokeAsync()
{
var pages = await _mongoService.GetAllAsync<Page>("Pages");
return View(pages.Where(p => p.IsActive).OrderBy(p => p.PageName).ToList());
}
}
}

View File

@@ -0,0 +1,40 @@
using Microsoft.AspNetCore.Mvc;
using SkyArtShop.Models;
using SkyArtShop.Services;
namespace SkyArtShop.ViewComponents
{
public class NavigationViewComponent : ViewComponent
{
private readonly MongoDBService _mongoService;
public NavigationViewComponent(MongoDBService mongoService)
{
_mongoService = mongoService;
}
public async Task<IViewComponentResult> InvokeAsync(string location = "navbar")
{
var menuItems = await _mongoService.GetAllAsync<MenuItem>("MenuItems");
if (location == "dropdown")
{
// For dropdown: must be Active AND ShowInDropdown
var dropdownItems = menuItems
.Where(m => m.IsActive && m.ShowInDropdown)
.OrderBy(m => m.DisplayOrder)
.ToList();
return View(dropdownItems);
}
else
{
// For navbar: must be Active AND ShowInNavbar
var navbarItems = menuItems
.Where(m => m.IsActive && m.ShowInNavbar)
.OrderBy(m => m.DisplayOrder)
.ToList();
return View(navbarItems);
}
}
}
}