From f5ec155bbbd87f94acdf699969558c229b8c25a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A4=D1=80=D0=BE=D0=BB=D0=BE=D0=B2?= Date: Tue, 18 Jan 2022 17:21:05 +0500 Subject: [PATCH] AdminPermissionController.GetAutogenerated() change generation algorithm. --- .../Controllers/AdminPermissionController.cs | 20 +++++++++++++++---- .../Middlewares/PermissionsMiddlware.cs | 12 +++++++++-- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/AsbCloudWebApi/Controllers/AdminPermissionController.cs b/AsbCloudWebApi/Controllers/AdminPermissionController.cs index 8a8d57ab..dcb76670 100644 --- a/AsbCloudWebApi/Controllers/AdminPermissionController.cs +++ b/AsbCloudWebApi/Controllers/AdminPermissionController.cs @@ -32,10 +32,22 @@ namespace AsbCloudWebApi.Controllers var controllerName = controller.Name.Replace("Controller", ""); foreach (var method in methods) { - var httpMethod = method.GetCustomAttribute()?.HttpMethods?.First(); - if (string.IsNullOrEmpty(httpMethod)) - continue; - permissions.Add($"{controllerName}.{httpMethod.ToLower()}"); + var httpMethod = method.GetCustomAttribute()?.HttpMethods?.First().ToLower(); + switch (httpMethod) + { + case "get": + case "delete": + permissions.Add($"{controllerName}.{httpMethod.ToLower()}"); + continue; + case "post": + case "put": + case "patch": + permissions.Add($"{controllerName}.edit"); + continue; + default: + continue; + } + } } diff --git a/AsbCloudWebApi/Middlewares/PermissionsMiddlware.cs b/AsbCloudWebApi/Middlewares/PermissionsMiddlware.cs index a49d106d..142ef94d 100644 --- a/AsbCloudWebApi/Middlewares/PermissionsMiddlware.cs +++ b/AsbCloudWebApi/Middlewares/PermissionsMiddlware.cs @@ -2,6 +2,7 @@ using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; +using System; using System.Threading.Tasks; namespace AsbCloudWebApi.Middlewares @@ -42,8 +43,15 @@ namespace AsbCloudWebApi.Middlewares var httpMethod = endpoint.Metadata .GetMetadata() - .HttpMethods[0]; - permissionName = $"{controller}.{httpMethod.ToLower()}"; + .HttpMethods[0] + .ToLower(); + + permissionName = httpMethod switch + { + "get" or "delete" => $"{controller}.{httpMethod}", + "post" or "put" or "patch" => $"{controller}.edit", + _ => throw new NotImplementedException(), + }; PermissionAttribute.Registered.Add(permissionName); } else if(permissionName.Contains("[controller]"))