Commit fd888caa authored by 王源's avatar 王源
Browse files

修改生成权限名规则

parent a35ed375
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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 {}
```
+10 −0
Original line number Diff line number Diff line
@@ -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)
    {