瀏覽代碼

日志权限控制:仅管理员支持查询全部;普通用户仅支持查询有权限的 jobGroup

xuxueli 6 年之前
父節點
當前提交
211abb985b

+ 1 - 7
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java 查看文件

1
 package com.xxl.job.admin.controller;
1
 package com.xxl.job.admin.controller;
2
 
2
 
3
-import com.xxl.job.admin.core.exception.XxlJobException;
4
 import com.xxl.job.admin.core.model.XxlJobInfo;
3
 import com.xxl.job.admin.core.model.XxlJobInfo;
5
 import com.xxl.job.admin.core.model.XxlJobLogGlue;
4
 import com.xxl.job.admin.core.model.XxlJobLogGlue;
6
-import com.xxl.job.admin.core.model.XxlJobUser;
7
 import com.xxl.job.admin.core.util.I18nUtil;
5
 import com.xxl.job.admin.core.util.I18nUtil;
8
 import com.xxl.job.admin.dao.XxlJobInfoDao;
6
 import com.xxl.job.admin.dao.XxlJobInfoDao;
9
 import com.xxl.job.admin.dao.XxlJobLogGlueDao;
7
 import com.xxl.job.admin.dao.XxlJobLogGlueDao;
10
-import com.xxl.job.admin.service.LoginService;
11
 import com.xxl.job.core.biz.model.ReturnT;
8
 import com.xxl.job.core.biz.model.ReturnT;
12
 import com.xxl.job.core.glue.GlueTypeEnum;
9
 import com.xxl.job.core.glue.GlueTypeEnum;
13
 import org.springframework.stereotype.Controller;
10
 import org.springframework.stereotype.Controller;
46
 		}
43
 		}
47
 
44
 
48
 		// valid permission
45
 		// valid permission
49
-		XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
50
-		if (!loginUser.validPermission(jobInfo.getJobGroup())) {
51
-			throw new XxlJobException(I18nUtil.getString("system_permission_limit"));
52
-		}
46
+		JobInfoController.validPermission(request, jobInfo.getJobGroup());
53
 
47
 
54
 		// Glue类型-字典
48
 		// Glue类型-字典
55
 		model.addAttribute("GlueTypeEnum", GlueTypeEnum.values());
49
 		model.addAttribute("GlueTypeEnum", GlueTypeEnum.values());

+ 6 - 0
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java 查看文件

83
 		}
83
 		}
84
 		return jobGroupList;
84
 		return jobGroupList;
85
 	}
85
 	}
86
+	public static void validPermission(HttpServletRequest request, int jobGroup) {
87
+		XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
88
+		if (!loginUser.validPermission(jobGroup)) {
89
+			throw new RuntimeException(I18nUtil.getString("system_permission_limit"));
90
+		}
91
+	}
86
 	
92
 	
87
 	@RequestMapping("/pageList")
93
 	@RequestMapping("/pageList")
88
 	@ResponseBody
94
 	@ResponseBody

+ 14 - 3
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java 查看文件

61
 		// 任务
61
 		// 任务
62
 		if (jobId > 0) {
62
 		if (jobId > 0) {
63
 			XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
63
 			XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
64
+			if (jobInfo == null) {
65
+				throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid"));
66
+			}
67
+
64
 			model.addAttribute("jobInfo", jobInfo);
68
 			model.addAttribute("jobInfo", jobInfo);
69
+
70
+			// valid permission
71
+			JobInfoController.validPermission(request, jobInfo.getJobGroup());
65
 		}
72
 		}
66
 
73
 
67
 		return "joblog/joblog.index";
74
 		return "joblog/joblog.index";
76
 	
83
 	
77
 	@RequestMapping("/pageList")
84
 	@RequestMapping("/pageList")
78
 	@ResponseBody
85
 	@ResponseBody
79
-	public Map<String, Object> pageList(@RequestParam(required = false, defaultValue = "0") int start,  
80
-			@RequestParam(required = false, defaultValue = "10") int length,
81
-			int jobGroup, int jobId, int logStatus, String filterTime) {
86
+	public Map<String, Object> pageList(HttpServletRequest request,
87
+										@RequestParam(required = false, defaultValue = "0") int start,
88
+										@RequestParam(required = false, defaultValue = "10") int length,
89
+										int jobGroup, int jobId, int logStatus, String filterTime) {
90
+
91
+		// valid permission
92
+		JobInfoController.validPermission(request, jobGroup);	// 仅管理员支持查询全部;普通用户仅支持查询有权限的 jobGroup
82
 		
93
 		
83
 		// parse param
94
 		// parse param
84
 		Date triggerTimeStart = null;
95
 		Date triggerTimeStart = null;

+ 5 - 0
xxl-job-admin/src/main/resources/static/js/joblog.index.1.js 查看文件

216
             }
216
             }
217
         }
217
         }
218
 	});
218
 	});
219
+    logTable.on('xhr.dt',function(e, settings, json, xhr) {
220
+        if (json.code && json.code != 200) {
221
+            layer.msg( json.msg || I18n.system_api_error );
222
+        }
223
+    });
219
 	
224
 	
220
 	// logTips alert
225
 	// logTips alert
221
 	$('#joblog_list').on('click', '.logTips', function(){
226
 	$('#joblog_list').on('click', '.logTips', function(){

+ 3 - 1
xxl-job-admin/src/main/resources/templates/joblog/joblog.index.ftl 查看文件

30
  					<div class="input-group">
30
  					<div class="input-group">
31
 	                	<span class="input-group-addon">${I18n.jobinfo_field_jobgroup}</span>
31
 	                	<span class="input-group-addon">${I18n.jobinfo_field_jobgroup}</span>
32
                 		<select class="form-control" id="jobGroup"  paramVal="<#if jobInfo?exists>${jobInfo.jobGroup}</#if>" >
32
                 		<select class="form-control" id="jobGroup"  paramVal="<#if jobInfo?exists>${jobInfo.jobGroup}</#if>" >
33
-                            <option value="0" >${I18n.system_all}</option>
33
+                            <#if Request["XXL_JOB_LOGIN_IDENTITY"].role == 1>
34
+                                <option value="0" >${I18n.system_all}</option>  <#-- 仅管理员支持查询全部;普通用户仅支持查询有权限的 jobGroup -->
35
+                            </#if>
34
                 			<#list JobGroupList as group>
36
                 			<#list JobGroupList as group>
35
                 				<option value="${group.id}" >${group.title}</option>
37
                 				<option value="${group.id}" >${group.title}</option>
36
                 			</#list>
38
                 			</#list>