DataPermissionHelper.java 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.ruoyi.common.helper;
  2. import cn.hutool.core.util.ObjectUtil;
  3. import com.ruoyi.common.utils.ServletUtils;
  4. import lombok.AccessLevel;
  5. import lombok.NoArgsConstructor;
  6. import javax.servlet.http.HttpServletRequest;
  7. import java.util.HashMap;
  8. import java.util.Map;
  9. /**
  10. * 数据权限助手
  11. *
  12. * @author Lion Li
  13. * @version 3.5.0
  14. */
  15. @NoArgsConstructor(access = AccessLevel.PRIVATE)
  16. @SuppressWarnings("unchecked cast")
  17. public class DataPermissionHelper {
  18. private static final String DATA_PERMISSION_KEY = "data:permission";
  19. public static <T> T getVariable(String key) {
  20. Map<String, Object> context = getContext();
  21. return (T) context.get(key);
  22. }
  23. public static void setVariable(String key, Object value) {
  24. Map<String, Object> context = getContext();
  25. context.put(key, value);
  26. }
  27. public static Map<String, Object> getContext() {
  28. HttpServletRequest request = ServletUtils.getRequest();
  29. Object attribute = request.getAttribute(DATA_PERMISSION_KEY);
  30. if (ObjectUtil.isNull(attribute)) {
  31. request.setAttribute(DATA_PERMISSION_KEY, new HashMap<>());
  32. attribute = request.getAttribute(DATA_PERMISSION_KEY);
  33. }
  34. if (attribute instanceof Map) {
  35. return (Map<String, Object>) attribute;
  36. }
  37. throw new NullPointerException("data permission context type exception");
  38. }
  39. }