aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudWebApplicationExtensions.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-12-19 12:24:54 +0800
committercrupest <crupest@outlook.com>2022-12-20 20:32:53 +0800
commite9b958cc41a3b941d878fd455e297a50e050be1a (patch)
tree1e431c0b2038cde586be12cfb96c6c2da75b11e8 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudWebApplicationExtensions.cs
parentf73342cb6b0592d3a6310f9a12fd40b4bf218e5c (diff)
downloadcrupest-e9b958cc41a3b941d878fd455e297a50e050be1a.tar.gz
crupest-e9b958cc41a3b941d878fd455e297a50e050be1a.tar.bz2
crupest-e9b958cc41a3b941d878fd455e297a50e050be1a.zip
Develop secret api. v43
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudWebApplicationExtensions.cs')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudWebApplicationExtensions.cs8
1 files changed, 6 insertions, 2 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudWebApplicationExtensions.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudWebApplicationExtensions.cs
index 9e85c68..b7bc6f1 100644
--- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudWebApplicationExtensions.cs
+++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/CrudWebApplicationExtensions.cs
@@ -2,11 +2,11 @@ namespace CrupestApi.Commons.Crud;
public static class CrudWebApplicationExtensions
{
- public static WebApplication UseCrud<TEntity>(this WebApplication app, string path, string? key) where TEntity : class
+ public static WebApplication MapCrud<TEntity>(this WebApplication app, string path, string? permission) where TEntity : class
{
app.MapGet(path, async (context) =>
{
-
+ if (!context.RequirePermission(permission)) return;
var crudService = context.RequestServices.GetRequiredService<CrudService<TEntity>>();
var allEntities = crudService.GetAll();
await context.ResponseJsonAsync(allEntities.Select(e => crudService.JsonHelper.ConvertEntityToDictionary(e)));
@@ -14,6 +14,7 @@ public static class CrudWebApplicationExtensions
app.MapGet(path + "/{key}", async (context) =>
{
+ if (!context.RequirePermission(permission)) return;
var crudService = context.RequestServices.GetRequiredService<CrudService<TEntity>>();
var key = context.Request.RouteValues["key"]?.ToString();
if (key == null)
@@ -28,6 +29,7 @@ public static class CrudWebApplicationExtensions
app.MapPost(path, async (context) =>
{
+ if (!context.RequirePermission(permission)) return;
var crudService = context.RequestServices.GetRequiredService<CrudService<TEntity>>();
var jsonDocument = await context.Request.ReadJsonAsync();
var key = crudService.Create(jsonDocument.RootElement);
@@ -36,6 +38,7 @@ public static class CrudWebApplicationExtensions
app.MapPatch(path + "/{key}", async (context) =>
{
+ if (!context.RequirePermission(permission)) return;
var crudService = context.RequestServices.GetRequiredService<CrudService<TEntity>>();
var key = context.Request.RouteValues["key"]?.ToString();
if (key == null)
@@ -52,6 +55,7 @@ public static class CrudWebApplicationExtensions
app.MapDelete(path + "/{key}", async (context) =>
{
+ if (!context.RequirePermission(permission)) return;
var crudService = context.RequestServices.GetRequiredService<CrudService<TEntity>>();
var key = context.Request.RouteValues["key"]?.ToString();
if (key == null)