c59f6d7e7c89dc630d7af2c2c071610730da392b.svn-base 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package org.jeecg.common.system.util;
  2. import org.jeecg.common.system.vo.SysPermissionDataRuleModel;
  3. import org.jeecg.common.system.vo.SysUserCacheInfo;
  4. import org.jeecg.common.util.SpringContextUtils;
  5. import org.springframework.util.StringUtils;
  6. import javax.servlet.http.HttpServletRequest;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. /**
  10. * @ClassName: JeecgDataAutorUtils
  11. * @Description: 数据权限查询规则容器工具类
  12. * @Author: 张代浩
  13. * @Date: 2012-12-15 下午11:27:39
  14. *
  15. */
  16. public class JeecgDataAutorUtils {
  17. public static final String MENU_DATA_AUTHOR_RULES = "MENU_DATA_AUTHOR_RULES";
  18. public static final String MENU_DATA_AUTHOR_RULE_SQL = "MENU_DATA_AUTHOR_RULE_SQL";
  19. public static final String SYS_USER_INFO = "SYS_USER_INFO";
  20. /**
  21. * 往链接请求里面,传入数据查询条件
  22. *
  23. * @param request
  24. * @param dataRules
  25. */
  26. public static synchronized void installDataSearchConditon(HttpServletRequest request, List<SysPermissionDataRuleModel> dataRules) {
  27. @SuppressWarnings("unchecked")
  28. List<SysPermissionDataRuleModel> list = (List<SysPermissionDataRuleModel>)loadDataSearchConditon();// 1.先从request获取MENU_DATA_AUTHOR_RULES,如果存则获取到LIST
  29. if (list==null) {
  30. // 2.如果不存在,则new一个list
  31. list = new ArrayList<SysPermissionDataRuleModel>();
  32. }
  33. for (SysPermissionDataRuleModel tsDataRule : dataRules) {
  34. list.add(tsDataRule);
  35. }
  36. request.setAttribute(MENU_DATA_AUTHOR_RULES, list); // 3.往list里面增量存指
  37. }
  38. /**
  39. * 获取请求对应的数据权限规则
  40. *
  41. * @return
  42. */
  43. @SuppressWarnings("unchecked")
  44. public static synchronized List<SysPermissionDataRuleModel> loadDataSearchConditon() {
  45. return (List<SysPermissionDataRuleModel>) SpringContextUtils.getHttpServletRequest().getAttribute(MENU_DATA_AUTHOR_RULES);
  46. }
  47. /**
  48. * 获取请求对应的数据权限SQL
  49. *
  50. * @return
  51. */
  52. public static synchronized String loadDataSearchConditonSQLString() {
  53. return (String) SpringContextUtils.getHttpServletRequest().getAttribute(MENU_DATA_AUTHOR_RULE_SQL);
  54. }
  55. /**
  56. * 往链接请求里面,传入数据查询条件
  57. *
  58. * @param request
  59. * @param sql
  60. */
  61. public static synchronized void installDataSearchConditon(HttpServletRequest request, String sql) {
  62. String ruleSql = (String)loadDataSearchConditonSQLString();
  63. if (!StringUtils.hasText(ruleSql)) {
  64. request.setAttribute(MENU_DATA_AUTHOR_RULE_SQL,sql);
  65. }
  66. }
  67. /**
  68. * 将用户信息存到request
  69. * @param request
  70. * @param userinfo
  71. */
  72. public static synchronized void installUserInfo(HttpServletRequest request, SysUserCacheInfo userinfo) {
  73. request.setAttribute(SYS_USER_INFO, userinfo);
  74. }
  75. /**
  76. * 将用户信息存到request
  77. * @param userinfo
  78. */
  79. public static synchronized void installUserInfo(SysUserCacheInfo userinfo) {
  80. SpringContextUtils.getHttpServletRequest().setAttribute(SYS_USER_INFO, userinfo);
  81. }
  82. /**
  83. * 从request获取用户信息
  84. * @return
  85. */
  86. public static synchronized SysUserCacheInfo loadUserInfo() {
  87. return (SysUserCacheInfo) SpringContextUtils.getHttpServletRequest().getAttribute(SYS_USER_INFO);
  88. }
  89. }