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

修改生成权限名规则

parent a35ed375
......@@ -26,30 +26,30 @@ composer require meibuyu/micro @dev
> 权限名会拼接env文件中的APP_NAME属性,请注意唯一性
> 所有权限必须存在于用户服务的权限表中,若不存在,请联系管理员添加权限
##### 1、@AutoPerm
在控制器头部添加@AutoPerm注解,为该控制器下所有的方法添加鉴权功能,生成的权限名为`小写控制名_方法名`
在控制器头部添加@AutoPerm注解,为该控制器下所有的方法添加鉴权功能,生成的权限名为`蛇形命名空间_蛇形控制名_蛇形方法名`
```
/**
* @AutoPerm()
*/
class UserController {}
class UserInfoController {}
```
参数:
> 1. prefix, 前缀(字符串),默认为小写控制器名(user)
> 1. prefix, 前缀(字符串),默认为蛇形命名空间_蛇形控制名(user_info)
> 2. exclude, 要排除的方法名(字符串数组),默认为空
```
/**
* @AutoPerm(prefix="user", exclude={"index"})
* @AutoPerm(prefix="user", exclude={"getUser"})
*/
class UserController {}
class UserInfoController {}
```
##### 2、@Perm
在控制器中的方法头部添加@Perm注解,为当前方法添加鉴权功能,生成权限名为`小写控制名_方法名`
在控制器中的方法头部添加@Perm注解,为当前方法添加鉴权功能,生成权限名为`蛇形命名空间_蛇形控制名_蛇形方法名`
```
/**
* @Perm()
*/
function get_user {}
function getUser {}
```
参数:
> name, 前缀(字符串),默认为小写控制器名拼接方法名(user),如果填写指定的名称,会覆盖@AutoPerm的prefix和exclude
......@@ -57,6 +57,6 @@ function get_user {}
/**
* @Perm("get_user")
*/
function get_user {}
function getUser {}
```
......@@ -95,6 +95,7 @@ class PermAnnotationAspect extends AbstractAspect
if ($prefix[-1] !== '_') {
$prefix .= '_';
}
$methodName = $this->parseMethodName($methodName);
return $appName . '_' . $prefix . $methodName;
}
......@@ -108,6 +109,15 @@ class PermAnnotationAspect extends AbstractAspect
return $prefix;
}
// 处理方法名
protected function parseMethodName(string $methodName): string
{
$name = Str::snake($methodName);
$name = str_replace('__', '_', $name);
trim($name, '_');
return $name;
}
// 获取注解
public function getAnnotations(ProceedingJoinPoint $proceedingJoinPoint)
{
......
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