Loading README.md +8 −8 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -57,6 +57,6 @@ function get_user {} /** * @Perm("get_user") */ function get_user {} function getUser {} ``` src/Aspect/PermAnnotationAspect.php +10 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ class PermAnnotationAspect extends AbstractAspect if ($prefix[-1] !== '_') { $prefix .= '_'; } $methodName = $this->parseMethodName($methodName); return $appName . '_' . $prefix . $methodName; } Loading @@ -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) { Loading Loading
README.md +8 −8 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -57,6 +57,6 @@ function get_user {} /** * @Perm("get_user") */ function get_user {} function getUser {} ```
src/Aspect/PermAnnotationAspect.php +10 −0 Original line number Diff line number Diff line Loading @@ -95,6 +95,7 @@ class PermAnnotationAspect extends AbstractAspect if ($prefix[-1] !== '_') { $prefix .= '_'; } $methodName = $this->parseMethodName($methodName); return $appName . '_' . $prefix . $methodName; } Loading @@ -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) { Loading