41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
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<IActionResult> 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");
|
|
}
|
|
}
|