Skip to content

Commit

Permalink
feat-userinfo-优化设置角色接口
Browse files Browse the repository at this point in the history
  • Loading branch information
aruis committed Oct 13, 2024
1 parent 0690198 commit 6a05570
Show file tree
Hide file tree
Showing 5 changed files with 164 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ void test() {
.header("userID", config.superUserId())
.contentType("application/json")
.body(List.of(role1, role2))
.post("%s/userinfo/roles/%s".formatted(base, userID))
.post("%s/userinfo/setRoles/%s".formatted(base, userID))
.then()
.statusCode(200)
.extract()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package net.ximatai.muyun.platform.ability;

import net.ximatai.muyun.platform.model.Module;

public interface IModuleRegisterAbility {

Module getModuleConfig();

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@
import net.ximatai.muyun.model.QueryItem;
import net.ximatai.muyun.model.ReferenceInfo;
import net.ximatai.muyun.platform.ScaffoldForPlatform;
import net.ximatai.muyun.platform.ability.IModuleRegisterAbility;
import net.ximatai.muyun.platform.model.Dict;
import net.ximatai.muyun.platform.model.DictCategory;
import net.ximatai.muyun.platform.model.Module;
import net.ximatai.muyun.platform.model.ModuleAction;
import net.ximatai.muyun.service.IAuthorizationService;
import org.eclipse.microprofile.openapi.annotations.Operation;

Expand All @@ -29,9 +32,12 @@
import java.util.Set;

import static net.ximatai.muyun.platform.PlatformConst.BASE_PATH;
import static net.ximatai.muyun.platform.controller.UserInfoController.MODULE_ALIAS;

@Path(BASE_PATH + "/userinfo")
public class UserInfoController extends ScaffoldForPlatform implements IReferableAbility, IReferenceAbility, ISoftDeleteAbility, IQueryAbility {
@Path(BASE_PATH + "/" + MODULE_ALIAS)
public class UserInfoController extends ScaffoldForPlatform implements IReferableAbility, IReferenceAbility, ISoftDeleteAbility, IQueryAbility, IModuleRegisterAbility {

public final static String MODULE_ALIAS = "userinfo";

@Inject
UserController userController;
Expand Down Expand Up @@ -85,7 +91,7 @@ public List<ReferenceInfo> getReferenceList() {
@POST
@Path("/setUser/{id}")
@Transactional
@Operation(summary = "设置为可登录用户")
@Operation(summary = "设置为可登录账户")
public String setUser(@PathParam("id") String id, Map<String, Object> params) {
String username = (String) params.get("v_username");
String password = (String) params.get("v_password");
Expand All @@ -107,7 +113,7 @@ public String setUser(@PathParam("id") String id, Map<String, Object> params) {
userController.create(Map.of("id", id, "v_username", username, "v_password", password));

if (params.containsKey("roles") && params.get("roles") instanceof List roles) {
this.roles(id, roles);
this.setRoles(id, roles);
}

return id;
Expand All @@ -116,7 +122,7 @@ public String setUser(@PathParam("id") String id, Map<String, Object> params) {
@POST
@Path("/setPassword/{id}")
@Transactional
@Operation(summary = "设置用户密码")
@Operation(summary = "设置账户密码")
public int setPassword(@PathParam("id") String id, Map<String, Object> params) {
String password = (String) params.get("v_password");
String password2 = (String) params.get("v_password2");
Expand Down Expand Up @@ -149,15 +155,15 @@ public Integer delete(String id) {

@GET
@Path("/disableUser/{id}")
@Operation(summary = "禁用用户")
@Operation(summary = "禁用账户")
public String disableUser(@PathParam("id") String id) {
userController.update(id, Map.of("b_enabled", false));
return id;
}

@GET
@Path("/enableUser/{id}")
@Operation(summary = "启用用户")
@Operation(summary = "启用账户")
public String enableUser(@PathParam("id") String id) {
userController.update(id, Map.of("b_enabled", true));
return id;
Expand All @@ -170,16 +176,30 @@ public List<QueryItem> queryItemList() {

@GET
@Path("/roles/{userID}")
@Operation(summary = "获取用户拥有的角色")
@Operation(summary = "获取账户拥有的角色")
public Set<String> roles(@PathParam("userID") String userID) {
return authorizationService.getUserAvailableRoles(userID);
}

@POST
@Path("/roles/{userID}")
@Operation(summary = "设置用户拥有的角色")
public Integer roles(@PathParam("userID") String userID, List<String> roles) {
@Path("/setRoles/{userID}")
@Operation(summary = "设置账户拥有的角色")
public Integer setRoles(@PathParam("userID") String userID, List<String> roles) {
userController.putChildTableList(userID, "auth_user_role", List.of());
return userController.putChildTableList(userID, "auth_user_role", roles.stream().map(it -> Map.of("id_at_auth_role", it)).toList()).getCreate();
}

@Override
public Module getModuleConfig() {
return Module.ofName("用户管理")
.setAlias(MODULE_ALIAS)
.setTable(getMainTable())
.setUrl("platform/userinfo/index")
.addAction(new ModuleAction("setUser", "设置账户"))
.addAction(new ModuleAction("setPassword", "设置密码"))
.addAction(new ModuleAction("disableUser", "禁用账户"))
.addAction(new ModuleAction("enableUser", "启用账户"))
.addAction(new ModuleAction("roles", "获取角色"))
.addAction(new ModuleAction("setRoles", "设置角色"));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
package net.ximatai.muyun.platform.model;

import java.util.ArrayList;
import java.util.List;

public class Module {
private String name;
private String alias = "void";
private String url;
private String table;
private String remark;
private boolean bSystem;
private List<ModuleAction> actions = new ArrayList<>();

private Module() {
}

public static Module ofName(String name) {
return new Module().setName(name);
}

public String getName() {
return name;
}

public Module setName(String name) {
this.name = name;
return this;
}

public String getAlias() {
return alias;
}

public Module setAlias(String alias) {
this.alias = alias;
return this;
}

public String getUrl() {
return url;
}

public Module setUrl(String url) {
this.url = url;
return this;
}

public String getTable() {
return table;
}

public Module setTable(String table) {
this.table = table;
return this;
}

public String getRemark() {
return remark;
}

public Module setRemark(String remark) {
this.remark = remark;
return this;
}

public boolean isbSystem() {
return bSystem;
}

public Module setbSystem(boolean bSystem) {
this.bSystem = bSystem;
return this;
}

public List<ModuleAction> getActions() {
return actions;
}

public Module addAction(ModuleAction action) {
this.actions.add(action);
return this;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package net.ximatai.muyun.platform.model;

public class ModuleAction {

public static final ModuleAction MENU = new ModuleAction("menu", "菜单").setOrder(0);
public static final ModuleAction VIEW = new ModuleAction("view", "浏览").setOrder(10);
public static final ModuleAction EXPORT = new ModuleAction("export", "导出").setOrder(15);
public static final ModuleAction CREATE = new ModuleAction("create", "新增").setOrder(20);
public static final ModuleAction IMPORT = new ModuleAction("import", "导入").setOrder(25);
public static final ModuleAction SORT = new ModuleAction("sort", "排序").setOrder(29);
public static final ModuleAction UPDATE = new ModuleAction("update", "修改").setOrder(30);
public static final ModuleAction DELETE = new ModuleAction("delete", "删除").setOrder(40);

private int order = 0;
private final String alias;
private final String name;

public ModuleAction(String alias, String name) {
this.alias = alias;
this.name = name;
}

public String getAlias() {
return alias;
}

public String getName() {
return name;
}

public int getOrder() {
return order;
}

public ModuleAction setOrder(int order) {
this.order = order;
return this;
}
}

0 comments on commit 6a05570

Please sign in to comment.