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]"))