AdminPermissionController.GetAutogenerated() change generation algorithm.

This commit is contained in:
Фролов 2022-01-18 17:21:05 +05:00
parent 7a10d26ca6
commit f5ec155bbb
2 changed files with 26 additions and 6 deletions

View File

@ -32,10 +32,22 @@ namespace AsbCloudWebApi.Controllers
var controllerName = controller.Name.Replace("Controller", "");
foreach (var method in methods)
{
var httpMethod = method.GetCustomAttribute<HttpMethodAttribute>()?.HttpMethods?.First();
if (string.IsNullOrEmpty(httpMethod))
continue;
permissions.Add($"{controllerName}.{httpMethod.ToLower()}");
var httpMethod = method.GetCustomAttribute<HttpMethodAttribute>()?.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;
}
}
}

View File

@ -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<Microsoft.AspNetCore.Routing.HttpMethodMetadata>()
.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]"))