package tech.powerjob.server.auth.interceptor; import tech.powerjob.server.auth.Permission; import tech.powerjob.server.auth.RoleScope; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * API 权限 * * @author tjq * @since 2023/3/20 */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface ApiPermission { /** * API 名称 * @return 空使用服务.方法名代替 */ String name() default ""; RoleScope roleScope() default RoleScope.APP; /** * 需要的权限 * @return 权限 */ Permission requiredPermission() default Permission.SU; /** * 固定权限不支持的场景,需要使用动态权限 * @return 动态权限 */ Class dynamicPermissionPlugin() default EmptyPlugin.class; /** * 新增场景,需要授权插件执行授权 * @return 授权插件 */ Class grandPermissionPlugin() default EmptyPlugin.class; }