using Authinator.Backend.Database; using Authinator.Backend.Database.Tables; using Authinator.Backend.Utils; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; namespace Authinator.Pages; public class AdminModel : PageModel { public IActionResult OnGet() { var db = new DatabaseContext(); if (!Request.HttpContext.IsAdmin(db)) return StatusCode(StatusCodes.Status403Forbidden); return Page(); } public async Task OnPost() { var db = new DatabaseContext(); if (!Request.HttpContext.IsAdmin(db)) return StatusCode(StatusCodes.Status403Forbidden); if (Request.Form["action"] == "add_user") { await db.Users.AddAsync(new User { Reference = Request.Form["reference"]! }); await db.SaveChangesAsync(); } if (Request.Form["action"] == "add_group") { await db.Groups.AddAsync(new Group { Name = Request.Form["name"]! }); await db.SaveChangesAsync(); } if (Request.Form["action"] == "add_acl") { await db.ACLs.AddAsync(new ACL { Name = Request.Form["name"]!, Target = Request.Form["target"]! }); await db.SaveChangesAsync(); } return Redirect("/Admin"); } }