|
@@ -2,6 +2,7 @@ package cn.com.qmth.examcloud.tool.task.basic;
|
|
|
|
|
|
import cn.com.qmth.examcloud.tool.task.Task;
|
|
import cn.com.qmth.examcloud.tool.task.Task;
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -58,11 +59,13 @@ public class InitUserDataRule implements Task {
|
|
log.info("task end...");
|
|
log.info("task end...");
|
|
}
|
|
}
|
|
|
|
|
|
- private void initUserDataRulesForDefaultStatus(List<UserInfo> list) {
|
|
|
|
- List<UserDataRuleInfo> todoList = new ArrayList<>();
|
|
|
|
|
|
+ private void initUserDataRulesForDefaultStatus(List<UserInfo> userList) {
|
|
|
|
+ List<UserDataRuleInfo> todoRuleList = new ArrayList<>();
|
|
|
|
+
|
|
|
|
+ int existRuleSize = 0;
|
|
|
|
+ for (UserInfo user : userList) {
|
|
|
|
+ UserDataRuleInfo curOrgDataRule = null;
|
|
|
|
|
|
- int existSize = 0;
|
|
|
|
- for (UserInfo user : list) {
|
|
|
|
// 用户与学习中心、课程、考试等数据维度的“默认全部”权限
|
|
// 用户与学习中心、课程、考试等数据维度的“默认全部”权限
|
|
for (DataRuleType type : DataRuleType.values()) {
|
|
for (DataRuleType type : DataRuleType.values()) {
|
|
UserDataRuleInfo rule = new UserDataRuleInfo();
|
|
UserDataRuleInfo rule = new UserDataRuleInfo();
|
|
@@ -73,11 +76,15 @@ public class InitUserDataRule implements Task {
|
|
rule.setEnabled(true);
|
|
rule.setEnabled(true);
|
|
|
|
|
|
if (this.existUserDataRule(rule)) {
|
|
if (this.existUserDataRule(rule)) {
|
|
- existSize++;
|
|
|
|
|
|
+ existRuleSize++;
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- todoList.add(rule);
|
|
|
|
|
|
+ if (DataRuleType.ORG == type) {
|
|
|
|
+ curOrgDataRule = rule;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ todoRuleList.add(rule);
|
|
}
|
|
}
|
|
|
|
|
|
// 用户与学习中心的数据权限
|
|
// 用户与学习中心的数据权限
|
|
@@ -89,18 +96,37 @@ public class InitUserDataRule implements Task {
|
|
rule.setRefId(user.getOrgId());// 关联学习中心ID
|
|
rule.setRefId(user.getOrgId());// 关联学习中心ID
|
|
rule.setEnabled(true);
|
|
rule.setEnabled(true);
|
|
|
|
|
|
|
|
+ if (curOrgDataRule != null) {
|
|
|
|
+ List<String> roles = this.queryUserRoles(user.getId());
|
|
|
|
+ boolean isLearnCenterUser = roles.contains("LC_USER");
|
|
|
|
+ if (isLearnCenterUser) {
|
|
|
|
+ curOrgDataRule.setEnabled(false);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
if (this.existUserDataRule(rule)) {
|
|
if (this.existUserDataRule(rule)) {
|
|
- existSize++;
|
|
|
|
|
|
+ existRuleSize++;
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- todoList.add(rule);
|
|
|
|
|
|
+ todoRuleList.add(rule);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- log.info(String.format("baseUserSize = %s, existSize = %s, todoSize = %s \n",
|
|
|
|
- list.size(), existSize, todoList.size()));
|
|
|
|
- this.addUserDataRules(todoList);
|
|
|
|
|
|
+ log.info(String.format("userSize = %s, existRuleSize = %s, todoRuleSize = %s \n",
|
|
|
|
+ userList.size(), existRuleSize, todoRuleList.size()));
|
|
|
|
+ this.addUserDataRules(todoRuleList);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private List<String> queryUserRoles(Long userId) {
|
|
|
|
+ StringBuilder querySql = new StringBuilder()
|
|
|
|
+ .append("select r.code from ec_b_user_role_relation ur ")
|
|
|
|
+ .append("inner join ec_b_role r on r.id = ur.role_id ")
|
|
|
|
+ .append("where ur.user_id = ").append(userId);
|
|
|
|
+
|
|
|
|
+ List<String> roles = jdbcTemplate.queryForList(querySql.toString(), String.class);
|
|
|
|
+ log.debug(String.format("userId = %s, roles = %s", userId, StringUtils.join(roles, ",")));
|
|
|
|
+ return roles;
|
|
}
|
|
}
|
|
|
|
|
|
private boolean existUserDataRule(UserDataRuleInfo rule) {
|
|
private boolean existUserDataRule(UserDataRuleInfo rule) {
|