package com.njcn.rdms.module.project.framework.security.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 对象级权限校验注解。
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CheckObjectPermission {

    /**
     * 对象类型，例如 product。
     */
    String objectType();

    /**
     * 对象编号 SpEL 表达式。
     */
    String objectId();

    /**
     * 对象权限码。
     */
    String permission() default "";

    /**
     * 是否仅校验成员身份。
     */
    boolean memberOnly() default false;

}
