|
|
|
@ -4,6 +4,8 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
|
|
import com.ruoyi.common.core.utils.ServletUtils;
|
|
|
|
|
import lombok.AccessLevel;
|
|
|
|
|
import lombok.NoArgsConstructor;
|
|
|
|
|
import org.apache.dubbo.rpc.RpcContext;
|
|
|
|
|
import org.apache.dubbo.rpc.RpcServiceContext;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
@ -19,7 +21,7 @@ import java.util.Map;
|
|
|
|
|
@SuppressWarnings("unchecked cast")
|
|
|
|
|
public class DataPermissionHelper {
|
|
|
|
|
|
|
|
|
|
private static final String DATA_PERMISSION_KEY = "data:permission";
|
|
|
|
|
public static final String DATA_PERMISSION_KEY = "data:permission";
|
|
|
|
|
|
|
|
|
|
public static <T> T getVariable(String key) {
|
|
|
|
|
Map<String, Object> context = getContext();
|
|
|
|
@ -34,11 +36,21 @@ public class DataPermissionHelper {
|
|
|
|
|
|
|
|
|
|
public static Map<String, Object> getContext() {
|
|
|
|
|
HttpServletRequest request = ServletUtils.getRequest();
|
|
|
|
|
Object attribute = request.getAttribute(DATA_PERMISSION_KEY);
|
|
|
|
|
Object attribute;
|
|
|
|
|
if (request != null) {
|
|
|
|
|
attribute = request.getAttribute(DATA_PERMISSION_KEY);
|
|
|
|
|
if (ObjectUtil.isNull(attribute)) {
|
|
|
|
|
request.setAttribute(DATA_PERMISSION_KEY, new HashMap<>());
|
|
|
|
|
attribute = request.getAttribute(DATA_PERMISSION_KEY);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
RpcServiceContext context = RpcContext.getServiceContext();
|
|
|
|
|
attribute = context.getObjectAttachment(DATA_PERMISSION_KEY);
|
|
|
|
|
if (ObjectUtil.isNull(attribute)) {
|
|
|
|
|
context.setObjectAttachment(DATA_PERMISSION_KEY, new HashMap<>());
|
|
|
|
|
attribute = context.getObjectAttachment(DATA_PERMISSION_KEY);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (attribute instanceof Map) {
|
|
|
|
|
return (Map<String, Object>) attribute;
|
|
|
|
|
}
|
|
|
|
|