Commit d2e7c2c4 authored by 王源's avatar 王源 🎧

权限注解去除命名空间

parent 0a5c03a5
...@@ -26,7 +26,7 @@ composer require meibuyu/micro @dev ...@@ -26,7 +26,7 @@ composer require meibuyu/micro @dev
> 权限名会拼接env文件中的APP_NAME属性,请注意唯一性 > 权限名会拼接env文件中的APP_NAME属性,请注意唯一性
> 所有权限必须存在于用户服务的权限表中,若不存在,请联系管理员添加权限 > 所有权限必须存在于用户服务的权限表中,若不存在,请联系管理员添加权限
##### 1、@AutoPerm ##### 1、@AutoPerm
在控制器头部添加@AutoPerm注解,为该控制器下所有的方法添加鉴权功能,生成的权限名为`蛇形命名空间_蛇形控制名_蛇形方法名` 在控制器头部添加@AutoPerm注解,为该控制器下所有的方法添加鉴权功能,生成的权限名为`蛇形控制名_蛇形方法名`
``` ```
/** /**
* @AutoPerm() * @AutoPerm()
...@@ -34,7 +34,7 @@ composer require meibuyu/micro @dev ...@@ -34,7 +34,7 @@ composer require meibuyu/micro @dev
class UserInfoController {} class UserInfoController {}
``` ```
参数: 参数:
> 1. prefix, 前缀(字符串),默认为蛇形命名空间_蛇形控制名(user_info) > 1. prefix, 前缀(字符串),默认为蛇形控制名(user_info)
> 2. exclude, 要排除的方法名(字符串数组),默认为空 > 2. exclude, 要排除的方法名(字符串数组),默认为空
``` ```
/** /**
...@@ -44,7 +44,7 @@ class UserInfoController {} ...@@ -44,7 +44,7 @@ class UserInfoController {}
``` ```
##### 2、@Perm ##### 2、@Perm
在控制器中的方法头部添加@Perm注解,为当前方法添加鉴权功能,生成权限名为`蛇形命名空间_蛇形控制名_蛇形方法名` 在控制器中的方法头部添加@Perm注解,为当前方法添加鉴权功能,生成权限名为`蛇形控制名_蛇形方法名`
``` ```
/** /**
* @Perm() * @Perm()
......
...@@ -91,8 +91,9 @@ class PermAnnotationAspect extends AbstractAspect ...@@ -91,8 +91,9 @@ class PermAnnotationAspect extends AbstractAspect
protected function genPrefix(string $className): string protected function genPrefix(string $className): string
{ {
$handledNamespace = Str::replaceFirst('Controller', '', Str::after($className, '\\Controller\\')); $handledNamespace = Str::replaceFirst('Controller', '', Str::after($className, '\\Controller\\'));
$handledNamespace = str_replace('\\', '_', $handledNamespace); $namespaceLength = strrpos($handledNamespace, '\\');
$prefix = Str::snake($handledNamespace); $prefix = $namespaceLength ? substr($handledNamespace, $namespaceLength + 1) : $handledNamespace;
$prefix = Str::snake($prefix);
$prefix = str_replace('__', '_', $prefix); $prefix = str_replace('__', '_', $prefix);
return $prefix; return $prefix;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment