From 32656d5aa535bb731c1f99076525e7de341af686 Mon Sep 17 00:00:00 2001 From: MaxKey Date: Fri, 15 Sep 2023 22:08:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7=E7=BB=84bu?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dromara/maxkey/entity/GroupMember.java | 2 +- .../service/GroupMemberService.java | 2 +- .../member-groups-editer.component.html | 62 ++++++++----- .../member-groups-editer.component.ts | 10 +-- .../app/routes/idm/users/users.component.html | 87 ++++++++++++------- .../app/routes/idm/users/users.component.ts | 4 +- .../src/app/service/group-members.service.ts | 2 +- .../src/assets/i18n/en-US.json | 22 +++++ .../src/assets/i18n/zh-CN.json | 22 +++++ .../src/assets/i18n/zh-TW.json | 22 +++++ .../idm/contorller/GroupMemberController.java | 44 +++++----- 11 files changed, 196 insertions(+), 83 deletions(-) diff --git a/maxkey-core/src/main/java/org/dromara/maxkey/entity/GroupMember.java b/maxkey-core/src/main/java/org/dromara/maxkey/entity/GroupMember.java index 2f96a5794..41b3e4ec4 100644 --- a/maxkey-core/src/main/java/org/dromara/maxkey/entity/GroupMember.java +++ b/maxkey-core/src/main/java/org/dromara/maxkey/entity/GroupMember.java @@ -26,7 +26,7 @@ import jakarta.persistence.Id; import jakarta.persistence.Table; @Entity -@Table(name = "MXK_ROLE_MEMBER") +@Table(name = "mxk_group_member") public class GroupMember extends UserInfo implements Serializable{ /** diff --git a/maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/GroupMemberService.java b/maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/GroupMemberService.java index b6755cea6..6214ff4be 100644 --- a/maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/GroupMemberService.java +++ b/maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/GroupMemberService.java @@ -80,7 +80,7 @@ public class GroupMemberService extends JpaService{ if(entity.getPageNumber() == 1 && totalPage < entity.getPageSize()) { totalCount = totalPage; }else { - totalCount = parseCount(getMapper().fetchPageResults(entity)); + totalCount = parseCount(getMapper().fetchCount(entity)); } return new JpaPageResults(entity.getPageNumber(),entity.getPageSize(),totalPage,totalCount,resultslist); diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/group-members/member-groups-editer/member-groups-editer.component.html b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/group-members/member-groups-editer/member-groups-editer.component.html index 8192da87c..0dfefdf45 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/group-members/member-groups-editer/member-groups-editer.component.html +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/group-members/member-groups-editer/member-groups-editer.component.html @@ -3,52 +3,72 @@
- {{ 'mxk.roles.name' | i18n }} + {{ 'mxk.groups.name' | i18n }} - +
- - + + + {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}
- + Id - {{ 'mxk.roles.name' | i18n }} - {{ 'mxk.roles.category' | i18n }} + {{ 'mxk.groups.name' | i18n }} + {{ 'mxk.groups.category' | i18n }} - + {{ data.id }} - {{ data.roleName }} - {{ 'mxk.roles.category.dynamic' | i18n }} - {{ 'mxk.roles.category.static' | i18n }} - {{ 'mxk.roles.category.app' | i18n }} + {{ data.groupName }} + {{ 'mxk.groups.category.dynamic' | i18n }} + {{ 'mxk.groups.category.static' | i18n }} + {{ 'mxk.groups.category.app' | i18n }}
-
\ No newline at end of file + diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/group-members/member-groups-editer/member-groups-editer.component.ts b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/group-members/member-groups-editer/member-groups-editer.component.ts index abec8aa1d..09d1a6ad1 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/group-members/member-groups-editer/member-groups-editer.component.ts +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/group-members/member-groups-editer/member-groups-editer.component.ts @@ -162,13 +162,13 @@ export class MemberGroupsEditerComponent implements OnInit { let selectedData = listOfEnabledData.filter(({ id, name }) => { return this.query.tableCheckedId.has(id); }); - let roleIds = ''; - let roleNames = ''; + let groupIds = ''; + let groupNames = ''; for (let i = 0; i < selectedData.length; i++) { - roleIds = `${roleIds},${selectedData[i].id}`; - roleNames = `${roleNames},${selectedData[i].name}`; + groupIds = `${groupIds},${selectedData[i].id}`; + groupNames = `${groupNames},${selectedData[i].name}`; } - this.groupMembersService.addMember2Roles({ username: this.username, roleId: roleIds, roleName: roleNames }).subscribe(res => { + this.groupMembersService.addMember2Groups({ username: this.username, groupId: groupIds, groupName: groupNames }).subscribe(res => { this.query.results = res.data; this.query.submitLoading = false; this.query.tableLoading = false; diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/users/users.component.html b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/users/users.component.html index f130bda4f..f02a50beb 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/users/users.component.html +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/users/users.component.html @@ -7,18 +7,23 @@ {{ 'mxk.users.username' | i18n }} - +
- - + + + {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}
@@ -37,8 +42,15 @@
- + @@ -59,15 +71,26 @@
- + - + {{ 'mxk.text.id' | i18n }} {{ 'mxk.users.username' | i18n }} {{ 'mxk.users.displayName' | i18n }} @@ -81,8 +104,11 @@ - + {{ data.id }} @@ -91,8 +117,7 @@ {{ data.employeeNumber }} {{ data.department }} {{ data.jobTitle }} - {{ data.gender == 1 ? ('mxk.users.gender.female' | i18n) : ('mxk.users.gender.male' | - i18n) }} + {{ data.gender == 1 ? ('mxk.users.gender.female' | i18n) : ('mxk.users.gender.male' | i18n) }} @@ -125,27 +150,25 @@
    -
  • {{ - 'mxk.text.roles' | i18n - }}
  • +
  • {{ + 'mxk.text.groups' | i18n + }}
  • {{ 'mxk.text.changepassword' | i18n - }}
  • -
  • {{ - 'mxk.text.lock' | i18n }}
  • + }} +
  • {{ 'mxk.text.lock' | i18n }}
  • {{ 'mxk.text.disable' | i18n - }}
  • + }}
  • {{ 'mxk.text.enable' | i18n - }}
  • + }}
  • {{ 'mxk.text.enable' | i18n - }}
  • + }}
  • {{ 'mxk.text.unlock' | i18n - }}
  • + }}
  • {{ 'mxk.text.delete' | i18n }}
@@ -156,4 +179,4 @@
- \ No newline at end of file + diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/users/users.component.ts b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/users/users.component.ts index 44b471ac8..2a2d244cc 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/users/users.component.ts +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/users/users.component.ts @@ -221,8 +221,8 @@ export class UsersComponent implements OnInit { onNavToUrl(e: MouseEvent, userId: String, username: String, navType: String) { e.preventDefault(); - if (navType === 'roles') { - this.router.navigateByUrl(`/access/rolemembers?username=${username}&userId=${userId}`); + if (navType === 'groups') { + this.router.navigateByUrl(`/idm/groupmembers?username=${username}&userId=${userId}`); } } diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/group-members.service.ts b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/group-members.service.ts index 51f80c4c1..bc26586e2 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/group-members.service.ts +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/app/service/group-members.service.ts @@ -40,7 +40,7 @@ export class GroupMembersService extends BaseService { }); } - addMember2Roles(body: any): Observable> { + addMember2Groups(body: any): Observable> { return this.http.post>(`${`${this.server.urls.base}/addMember2Groups`}`, body); } } diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/en-US.json b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/en-US.json index 3db45059f..d00de0015 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/en-US.json +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/en-US.json @@ -505,6 +505,28 @@ "suspendTime": "Suspend Time", "isdefault": "Is Default" }, + "groups": { + "name": "Group Name", + "type": { + "":"Member Type", + "user":"User", + "user-dynamic":"User-Dynamic", + "post":"Post" + }, + "member": "Member", + "permissions": "Permissions", + "category": { + "":"Category", + "dynamic":"Dynamic", + "static":"Static", + "app":"App" + }, + "filters": "Attributes Filter", + "orgIdsList": "Dept List", + "resumeTime": "Join Time", + "suspendTime": "Suspend Time", + "isdefault": "Is Default" + }, "resources": { "id": "ID", "name": "Resource", diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-CN.json b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-CN.json index c2749cbec..e6f26116f 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-CN.json +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-CN.json @@ -503,6 +503,28 @@ "suspendTime": "挂起时间", "isdefault": "是否默认角色" }, + "groups": { + "name": "用户组名称", + "type": { + "":"成员类型", + "user":"用户", + "user-dynamic":"用户-动态", + "post":"岗位" + }, + "member": "成员", + "permissions": "访问权限", + "category": { + "":"类型", + "dynamic":"动态", + "static":"静态", + "app":"应用" + }, + "filters": "属性过滤器", + "orgIdsList": "部门列表", + "resumeTime": "加入时间", + "suspendTime": "挂起时间", + "isdefault": "是否默认角色" + }, "resources": { "id": "资源编码", "name": "资源名称", diff --git a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-TW.json b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-TW.json index 12180f31b..e99744239 100644 --- a/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-TW.json +++ b/maxkey-web-frontend/maxkey-web-mgt-app/src/assets/i18n/zh-TW.json @@ -504,6 +504,28 @@ "suspendTime": "掛起時間", "isdefault": "是否默認角色" }, + "groups": { + "name": "用戶组名稱", + "type": { + "":"成員類型", + "user":"用戶", + "user-dynamic":"用戶-動態", + "post":"崗位" + }, + "member": "成員", + "permissions": "存取控制", + "category": { + "":"類型", + "dynamic":"動態", + "static":"靜態", + "app":"應用" + }, + "filters": "屬性過濾器", + "orgIdsList": "部門列表", + "resumeTime": "加入時間", + "suspendTime": "掛起時間", + "isdefault": "是否默認角色" + }, "resources": { "id": "資源編碼", "name": "資源名稱", diff --git a/maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/web/idm/contorller/GroupMemberController.java b/maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/web/idm/contorller/GroupMemberController.java index 805398c4c..19300a7c4 100644 --- a/maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/web/idm/contorller/GroupMemberController.java +++ b/maxkey-webs/maxkey-web-mgt/src/main/java/org/dromara/maxkey/web/idm/contorller/GroupMemberController.java @@ -123,16 +123,18 @@ public class GroupMemberController { groupMember.setType("USER"); } for (int i = 0; i < arrMemberIds.length; i++) { - GroupMember newGroupMember = - new GroupMember( - groupId, - groupMember.getGroupName(), - arrMemberIds[i], - arrMemberNames[i], - groupMember.getType(), - currentUser.getInstId()); - newGroupMember.setId(WebContext.genId()); - result = service.insert(newGroupMember); + if(StringUtils.isNotBlank(arrMemberIds[i])) { + GroupMember newGroupMember = + new GroupMember( + groupId, + groupMember.getGroupName(), + arrMemberIds[i], + arrMemberNames[i], + groupMember.getType(), + currentUser.getInstId()); + newGroupMember.setId(WebContext.genId()); + result = service.insert(newGroupMember); + } } if(result) { return new Message(Message.SUCCESS).buildResponse(); @@ -164,16 +166,18 @@ public class GroupMemberController { String[] arrGroupNames = groupNames.split(","); for (int i = 0; i < arrGroupIds.length; i++) { - GroupMember newGroupMember = - new GroupMember( - arrGroupIds[i], - arrGroupNames[i], - userInfo.getId(), - userInfo.getDisplayName(), - "USER", - currentUser.getInstId()); - newGroupMember.setId(WebContext.genId()); - result = service.insert(newGroupMember); + if(StringUtils.isNotBlank(arrGroupIds[i])) { + GroupMember newGroupMember = + new GroupMember( + arrGroupIds[i], + arrGroupNames[i], + userInfo.getId(), + userInfo.getDisplayName(), + "USER", + currentUser.getInstId()); + newGroupMember.setId(WebContext.genId()); + result = service.insert(newGroupMember); + } } if(result) { return new Message(Message.SUCCESS).buildResponse();