|
@@ -1,7 +1,10 @@
|
|
|
package cn.reghao.devops.manager.template.attribute;
|
|
package cn.reghao.devops.manager.template.attribute;
|
|
|
|
|
|
|
|
|
|
+import cn.reghao.devops.common.build.model.constant.EnvType;
|
|
|
import cn.reghao.devops.manager.account.model.constant.MenuType;
|
|
import cn.reghao.devops.manager.account.model.constant.MenuType;
|
|
|
-import cn.reghao.devops.manager.util.DefaultSetting;
|
|
|
|
|
|
|
+import cn.reghao.devops.manager.account.model.constant.RoleType;
|
|
|
|
|
+import cn.reghao.devops.manager.account.service.UserContext;
|
|
|
|
|
+import cn.reghao.devops.manager.app.model.constant.AppType;
|
|
|
import org.thymeleaf.IEngineConfiguration;
|
|
import org.thymeleaf.IEngineConfiguration;
|
|
|
import org.thymeleaf.context.ITemplateContext;
|
|
import org.thymeleaf.context.ITemplateContext;
|
|
|
import org.thymeleaf.engine.AttributeName;
|
|
import org.thymeleaf.engine.AttributeName;
|
|
@@ -20,6 +23,7 @@ import java.util.*;
|
|
|
* @date 2018/8/14
|
|
* @date 2018/8/14
|
|
|
*/
|
|
*/
|
|
|
public class SelectDictAttrProcessor extends AbstractAttributeTagProcessor {
|
|
public class SelectDictAttrProcessor extends AbstractAttributeTagProcessor {
|
|
|
|
|
+ private final static Map<String, Map<String, Map<String, Object>>> selectCache = new HashMap<>();
|
|
|
private final static Map<String, Map<String, Object>> localCache = new HashMap<>();
|
|
private final static Map<String, Map<String, Object>> localCache = new HashMap<>();
|
|
|
static {
|
|
static {
|
|
|
// 只会在应用启动时初始化一次
|
|
// 只会在应用启动时初始化一次
|
|
@@ -36,8 +40,8 @@ public class SelectDictAttrProcessor extends AbstractAttributeTagProcessor {
|
|
|
localCache.get("LOGLEVEL").put("info", "info");
|
|
localCache.get("LOGLEVEL").put("info", "info");
|
|
|
localCache.get("LOGLEVEL").put("error", "error");
|
|
localCache.get("LOGLEVEL").put("error", "error");
|
|
|
|
|
|
|
|
- localCache.put("ENVIRONMENT", new HashMap<>());
|
|
|
|
|
- localCache.put("APP_TYPE", new HashMap<>());
|
|
|
|
|
|
|
+ selectCache.put("ENVIRONMENT", new HashMap<>());
|
|
|
|
|
+ selectCache.put("APP_TYPE", new HashMap<>());
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public static final int PRECEDENCE = 1400;
|
|
public static final int PRECEDENCE = 1400;
|
|
@@ -61,20 +65,56 @@ public class SelectDictAttrProcessor extends AbstractAttributeTagProcessor {
|
|
|
* @date 2023-12-01 15:15:50
|
|
* @date 2023-12-01 15:15:50
|
|
|
*/
|
|
*/
|
|
|
private Map<String, Object> getSelectOptions(String attr) {
|
|
private Map<String, Object> getSelectOptions(String attr) {
|
|
|
- Map<String, Object> map = localCache.get(attr);
|
|
|
|
|
|
|
+ Map<String, Map<String, Object>> map = selectCache.get(attr);
|
|
|
if (map.isEmpty()) {
|
|
if (map.isEmpty()) {
|
|
|
if ("ENVIRONMENT".equals(attr)) {
|
|
if ("ENVIRONMENT".equals(attr)) {
|
|
|
- DefaultSetting.getAppEnvs().forEach(appEnv -> {
|
|
|
|
|
- map.put(appEnv.getKey(), appEnv.getValue());
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ for (RoleType roleType : RoleType.values()) {
|
|
|
|
|
+ String role = roleType.name();
|
|
|
|
|
+ if (role.equals(RoleType.ROLE_ADMIN.name())) {
|
|
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
|
|
+ for (EnvType envType : EnvType.values()) {
|
|
|
|
|
+ map1.put(envType.name(), envType.name());
|
|
|
|
|
+ }
|
|
|
|
|
+ map.put(role, map1);
|
|
|
|
|
+ } else if (role.equals(RoleType.ROLE_BACKEND.name()) || role.equals(RoleType.ROLE_FRONTEND.name())) {
|
|
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
|
|
+ map1.put(EnvType.uat.name(), EnvType.uat.name());
|
|
|
|
|
+ map1.put(EnvType.test.name(), EnvType.test.name());
|
|
|
|
|
+ map.put(role, map1);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
|
|
+ map1.put(EnvType.test.name(), EnvType.test.name());
|
|
|
|
|
+ map.put(role, map1);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
} else if ("APP_TYPE".equals(attr)) {
|
|
} else if ("APP_TYPE".equals(attr)) {
|
|
|
- DefaultSetting.getAppTypes().forEach(appType -> {
|
|
|
|
|
- map.put(appType.getKey(), appType.getValue());
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ for (RoleType roleType : RoleType.values()) {
|
|
|
|
|
+ String role = roleType.name();
|
|
|
|
|
+ if (role.equals(RoleType.ROLE_ADMIN.name())) {
|
|
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
|
|
+ for (AppType appType : AppType.values()) {
|
|
|
|
|
+ map1.put(appType.name(), appType.name());
|
|
|
|
|
+ }
|
|
|
|
|
+ map.put(role, map1);
|
|
|
|
|
+ } else if (role.equals(RoleType.ROLE_BACKEND.name())) {
|
|
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
|
|
+ map1.put(AppType.dotnetCore.name(), AppType.dotnetCore.getName());
|
|
|
|
|
+ map.put(role, map1);
|
|
|
|
|
+ } else if (role.equals(RoleType.ROLE_FRONTEND.name())) {
|
|
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
|
|
+ map1.put(AppType.npm.name(), AppType.npm.getName());
|
|
|
|
|
+ map.put(role, map1);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
|
|
+ map1.put(AppType.maven.name(), AppType.maven.getName());
|
|
|
|
|
+ map.put(role, map1);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- return map;
|
|
|
|
|
|
|
+ String role = UserContext.getUserRole();
|
|
|
|
|
+ return map.get(role);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|