Browse Source

修复动态用户组出现bug #I85U4I

MaxKey 2 years ago
parent
commit
acfd2aa269

+ 7 - 7
maxkey-persistence/src/main/java/org/dromara/maxkey/persistence/service/GroupsService.java

@@ -47,7 +47,7 @@ public class GroupsService  extends JpaService<Groups> implements Serializable {
     final static Logger _logger = LoggerFactory.getLogger(GroupsService.class);
     @JsonIgnore
     @Autowired
-    GroupMemberService service;
+    GroupMemberService groupMemberService;
     
     @Autowired
     InstitutionsService institutionsService;
@@ -71,7 +71,7 @@ public class GroupsService  extends JpaService<Groups> implements Serializable {
 	
 	public boolean deleteById(String groupId) {
 	    this.remove(groupId);
-	    service.deleteByGroupId(groupId);
+	    groupMemberService.deleteByGroupId(groupId);
 	    return true;
 	}
 	
@@ -131,14 +131,14 @@ public class GroupsService  extends JpaService<Groups> implements Serializable {
     	    
     	    if(isDynamicTimeSupport) {
     	        if(isBetweenEffectiveTime) {
-    	        	service.deleteDynamicMember(dynamicGroup);
-    	        	service.addDynamicMember(dynamicGroup);
+    	        	groupMemberService.deleteDynamicMember(dynamicGroup);
+    	        	groupMemberService.addDynamicMember(dynamicGroup);
     	        }else {
-    	        	service.deleteDynamicMember(dynamicGroup);
+    	        	groupMemberService.deleteDynamicMember(dynamicGroup);
     	        }
     	    }else{
-    	    	service.deleteDynamicMember(dynamicGroup);
-    	    	service.addDynamicMember(dynamicGroup);
+    	    	groupMemberService.deleteDynamicMember(dynamicGroup);
+    	    	groupMemberService.addDynamicMember(dynamicGroup);
             }
 	    }
     }

+ 2 - 2
maxkey-persistence/src/main/resources/org/dromara/maxkey/persistence/mapper/xml/mysql/GroupMemberMapper.xml

@@ -184,7 +184,7 @@
 		</if>
 	</select>
 
-	<update id="addDynamicGroupMember" parameterType="Groups" >
+	<update id="addDynamicMember" parameterType="Groups" >
     	insert into mxk_group_member(
     		id,
     		groupid,
@@ -213,7 +213,7 @@
 		</if>
     </update>
     
-    <delete id="deleteDynamicGroupMember" parameterType="Groups" >
+    <delete id="deleteDynamicMember" parameterType="Groups" >
     	delete from mxk_group_member gm
     	where type = 'user-dynamic'
     		and gm.groupid=#{id}

+ 2 - 2
maxkey-web-frontend/maxkey-web-mgt-app/src/app/entity/Groups.ts

@@ -19,8 +19,8 @@ import format from 'date-fns/format';
 import { BaseEntity } from './BaseEntity';
 
 export class Groups extends BaseEntity {
-  roleCode!: String;
-  roleName!: String;
+  groupCode!: String;
+  groupName!: String;
   category!: String;
   filters!: String;
   orgIdsList!: String;

+ 11 - 11
maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/groups/group-editer/group-editer.component.html

@@ -8,28 +8,28 @@
       </nz-form-control>
     </nz-form-item>
     <nz-form-item>
-      <nz-form-label [nzMd]="6" nzRequired nzFor="roleCode">{{ 'mxk.text.id' | i18n }}</nz-form-label>
+      <nz-form-label [nzMd]="6" nzRequired nzFor="groupCode">{{ 'mxk.text.id' | i18n }}</nz-form-label>
       <nz-form-control [nzMd]="18" nzErrorTip="The input is not valid id!">
-        <input [(ngModel)]="form.model.roleCode" [ngModelOptions]="{ standalone: true }" nz-input name="roleCode" />
+        <input [(ngModel)]="form.model.groupCode" [ngModelOptions]="{ standalone: true }" nz-input name="groupCode" />
       </nz-form-control>
     </nz-form-item>
     <nz-form-item>
-      <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="roleName">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
+      <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired nzFor="groupName">{{ 'mxk.groups.name' | i18n }}</nz-form-label>
       <nz-form-control [nzSm]="18" [nzMd]="18" [nzXs]="36" [nzXl]="48" nzErrorTip="The input is not valid minLength!">
-        <input [(ngModel)]="form.model.roleName" [ngModelOptions]="{ standalone: true }" nz-input name="roleName" id="roleName" />
+        <input [(ngModel)]="form.model.groupName" [ngModelOptions]="{ standalone: true }" nz-input name="groupName" />
       </nz-form-control>
     </nz-form-item>
     <nz-form-item>
-      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="dynamic">{{ 'mxk.roles.category' | i18n }}</nz-form-label>
+      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="dynamic">{{ 'mxk.groups.category' | i18n }}</nz-form-label>
       <nz-form-control [nzSm]="14" [nzXs]="24" nzErrorTip="The input is not valid status!">
         <nz-radio-group [(ngModel)]="form.model.category" [ngModelOptions]="{ standalone: true }" nzButtonStyle="solid">
-          <label nz-radio-button nzValue="static">{{ 'mxk.roles.category.static' | i18n }}</label>
-          <label nz-radio-button nzValue="dynamic">{{ 'mxk.roles.category.dynamic' | i18n }}</label>
+          <label nz-radio-button nzValue="static">{{ 'mxk.groups.category.static' | i18n }}</label>
+          <label nz-radio-button nzValue="dynamic">{{ 'mxk.groups.category.dynamic' | i18n }}</label>
         </nz-radio-group>
       </nz-form-control>
     </nz-form-item>
     <nz-form-item *ngIf="form.model.category == 'dynamic'">
-      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="resumeTime">{{ 'mxk.roles.resumeTime' | i18n }}</nz-form-label>
+      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="resumeTime">{{ 'mxk.groups.resumeTime' | i18n }}</nz-form-label>
       <nz-form-control [nzSm]="18" [nzXs]="24" nzErrorTip="The input is not valid port!">
         <nz-time-picker
           [(ngModel)]="form.model.picker_resumeTime"
@@ -41,7 +41,7 @@
       </nz-form-control>
     </nz-form-item>
     <nz-form-item *ngIf="form.model.category == 'dynamic'">
-      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="suspendTime">{{ 'mxk.roles.suspendTime' | i18n }}</nz-form-label>
+      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="suspendTime">{{ 'mxk.groups.suspendTime' | i18n }}</nz-form-label>
       <nz-form-control [nzSm]="18" [nzXs]="24" nzErrorTip="The input is not valid suspendTime!">
         <nz-time-picker
           [(ngModel)]="form.model.picker_suspendTime"
@@ -53,7 +53,7 @@
       </nz-form-control>
     </nz-form-item>
     <nz-form-item *ngIf="form.model.category == 'dynamic'">
-      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="orgIdsList">{{ 'mxk.roles.orgIdsList' | i18n }}</nz-form-label>
+      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="orgIdsList">{{ 'mxk.groups.orgIdsList' | i18n }}</nz-form-label>
       <nz-form-control [nzSm]="18" [nzXs]="24" nzErrorTip="The input is not valid upperCase!">
         <input
           type="hidden"
@@ -77,7 +77,7 @@
       </nz-form-control>
     </nz-form-item>
     <nz-form-item *ngIf="form.model.category == 'dynamic'">
-      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="filters">{{ 'mxk.roles.filters' | i18n }}</nz-form-label>
+      <nz-form-label [nzSm]="6" [nzXs]="24" nzFor="filters">{{ 'mxk.groups.filters' | i18n }}</nz-form-label>
       <nz-form-control [nzSm]="18" [nzXs]="24" nzErrorTip="The input is not valid filters!">
         <textarea
           rows="4"

+ 50 - 29
maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/groups/groups.component.html

@@ -5,21 +5,26 @@
     <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
       <div nz-col nzMd="16" nzSm="24">
         <nz-form-item>
-          <nz-form-label nzFor="name">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
+          <nz-form-label nzFor="name">{{ 'mxk.groups.name' | i18n }}</nz-form-label>
           <nz-form-control>
-            <input nz-input [(ngModel)]="query.params.groupName" [ngModelOptions]="{ standalone: true }"
-              name="groupName" placeholder="" id="groupName" />
+            <input
+              nz-input
+              [(ngModel)]="query.params.groupName"
+              [ngModelOptions]="{ standalone: true }"
+              name="groupName"
+              placeholder=""
+              id="groupName"
+            />
           </nz-form-control>
         </nz-form-item>
       </div>
 
       <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
-        <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="query.submitLoading">{{ 'mxk.text.query' |
-          i18n }}</button>
-        <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
-          i18n }}</button>
+        <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="query.submitLoading">{{ 'mxk.text.query' | i18n }}</button>
+        <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
         <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
-          {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button>
+          {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
+        >
       </div>
     </div>
   </form>
@@ -29,34 +34,48 @@
     <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
     <button nz-button type="button" (click)="onBatchDelete($event)" [nzType]="'primary'" nzDanger class="mx-sm">{{
       'mxk.text.delete' | i18n
-      }}</button>
+    }}</button>
   </div>
-  <nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows"
-    [nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions"
-    [nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading"
-    (nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%">
+  <nz-table
+    #dynamicTable
+    nzTableLayout="auto"
+    nzSize="small"
+    nzBordered
+    nzShowSizeChanger
+    [nzData]="query.results.rows"
+    [nzFrontPagination]="false"
+    [nzTotal]="query.results.records"
+    [nzPageSizeOptions]="query.params.pageSizeOptions"
+    [nzPageSize]="query.params.pageSize"
+    [nzPageIndex]="query.params.pageNumber"
+    [nzLoading]="this.query.tableLoading"
+    (nzQueryParams)="onQueryParamsChange($event)"
+    nzWidth="100%"
+  >
     <thead>
       <tr>
-        <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate"
-          (nzCheckedChange)="onTableAllChecked($event)"></th>
+        <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
         <th nzAlign="center" style="display: none">Id</th>
-        <th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th>
-        <th nzAlign="center">{{ 'mxk.roles.category' | i18n }}</th>
+        <th nzAlign="center">{{ 'mxk.groups.name' | i18n }}</th>
+        <th nzAlign="center">{{ 'mxk.groups.category' | i18n }}</th>
         <th nzAlign="center">{{ 'mxk.text.description' | i18n }}</th>
         <th nzAlign="center" class="table_cell_action_2">{{ 'mxk.text.action' | i18n }}</th>
       </tr>
     </thead>
     <tbody>
       <tr *ngFor="let data of query.results.rows">
-        <td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled"
-          (nzCheckedChange)="onTableItemChecked(data.id, $event)"></td>
+        <td
+          [nzChecked]="query.tableCheckedId.has(data.id)"
+          [nzDisabled]="data.disabled"
+          (nzCheckedChange)="onTableItemChecked(data.id, $event)"
+        ></td>
         <td nzAlign="left" style="display: none">
           <span>{{ data.id }}</span>
         </td>
         <td nzAlign="left" nzBreakWord="false">{{ data.groupName }}</td>
-        <td nzAlign="center" *ngIf="data.category == 'dynamic'"> {{ 'mxk.roles.category.dynamic' | i18n }}</td>
-        <td nzAlign="center" *ngIf="data.category == 'static'"> {{ 'mxk.roles.category.static' | i18n }}</td>
-        <td nzAlign="center" *ngIf="data.category == 'app'"> {{ 'mxk.roles.category.app' | i18n }}</td>
+        <td nzAlign="center" *ngIf="data.category == 'dynamic'"> {{ 'mxk.groups.category.dynamic' | i18n }}</td>
+        <td nzAlign="center" *ngIf="data.category == 'static'"> {{ 'mxk.groups.category.static' | i18n }}</td>
+        <td nzAlign="center" *ngIf="data.category == 'app'"> {{ 'mxk.groups.category.app' | i18n }}</td>
         <td nzAlign="left">{{ data.description }}</td>
         <td nzAlign="center" nzBreakWord="false">
           <div nz-col>
@@ -68,13 +87,15 @@
 
             <nz-dropdown-menu #menuMoreAction="nzDropdownMenu">
               <ul nz-menu>
-                <li nz-menu-item (click)="onMembers($event, data.id, data.groupName)">{{ 'mxk.roles.member' | i18n }}
-                </li>
-                <li nz-menu-item (click)="onPermissions($event, data.id, data.groupName)">{{ 'mxk.roles.permissions' |
-                  i18n }}</li>
-                <li nz-menu-item
+                <li nz-menu-item (click)="onMembers($event, data.id, data.groupName)">{{ 'mxk.groups.member' | i18n }} </li>
+                <li nz-menu-item (click)="onPermissions($event, data.id, data.groupName)">{{ 'mxk.groups.permissions' | i18n }}</li>
+                <li
+                  nz-menu-item
                   *ngIf="data.roleCode != 'ROLE_ADMINISTRATORS' && data.roleCode != 'ROLE_ALL_USER' && data.roleCode != 'ROLE_MANAGERS'"
-                  (click)="onDelete($event, data.id)" nzDanger>{{ 'mxk.text.delete' | i18n }}</li>
+                  (click)="onDelete($event, data.id)"
+                  nzDanger
+                  >{{ 'mxk.text.delete' | i18n }}</li
+                >
               </ul>
             </nz-dropdown-menu>
           </div>
@@ -82,4 +103,4 @@
       </tr>
     </tbody>
   </nz-table>
-</nz-card>
+</nz-card>

+ 39 - 19
maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/idm/groups/select-groups/select-groups.component.html

@@ -4,52 +4,72 @@
   <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
     <div nz-col nzMd="14" nzSm="24">
       <nz-form-item>
-        <nz-form-label nzFor="groupName">{{ 'mxk.roles.name' | i18n }}</nz-form-label>
+        <nz-form-label nzFor="groupName">{{ 'mxk.groups.name' | i18n }}</nz-form-label>
         <nz-form-control>
-          <input nz-input [(ngModel)]="query.params.groupName" [ngModelOptions]="{ standalone: true }" name="groupName"
-            placeholder="" id="groupName" />
+          <input
+            nz-input
+            [(ngModel)]="query.params.groupName"
+            [ngModelOptions]="{ standalone: true }"
+            name="groupName"
+            placeholder=""
+            id="groupName"
+          />
         </nz-form-control>
       </nz-form-item>
     </div>
 
     <div nz-col [nzSpan]="query.expandForm ? 24 : 10" [class.text-right]="query.expandForm">
-      <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="query.submitLoading">{{ 'mxk.text.query' | i18n
-        }}</button>
-      <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n
-        }}</button>
+      <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="query.submitLoading">{{ 'mxk.text.query' | i18n }}</button>
+      <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' | i18n }}</button>
       <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
-        {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button>
+        {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button
+      >
       <button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.confirm' | i18n }}</button>
     </div>
   </div>
 </form>
 
-<nz-table #dynamicTable nzTableLayout="auto" nzSize="small" nzBordered nzShowSizeChanger [nzData]="query.results.rows"
-  [nzFrontPagination]="false" [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions"
-  [nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber" [nzLoading]="this.query.tableLoading"
-  (nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%">
+<nz-table
+  #dynamicTable
+  nzTableLayout="auto"
+  nzSize="small"
+  nzBordered
+  nzShowSizeChanger
+  [nzData]="query.results.rows"
+  [nzFrontPagination]="false"
+  [nzTotal]="query.results.records"
+  [nzPageSizeOptions]="query.params.pageSizeOptions"
+  [nzPageSize]="query.params.pageSize"
+  [nzPageIndex]="query.params.pageNumber"
+  [nzLoading]="this.query.tableLoading"
+  (nzQueryParams)="onQueryParamsChange($event)"
+  nzWidth="100%"
+>
   <thead>
     <tr>
       <th></th>
       <th nzAlign="center" style="display: none">Id</th>
-      <th nzAlign="center">{{ 'mxk.roles.name' | i18n }}</th>
-      <th nzAlign="center">{{ 'mxk.roles.category' | i18n }}</th>
+      <th nzAlign="center">{{ 'mxk.groups.name' | i18n }}</th>
+      <th nzAlign="center">{{ 'mxk.groups.category' | i18n }}</th>
     </tr>
   </thead>
   <tbody>
     <tr *ngFor="let data of query.results.rows">
-      <td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled"
-        (nzCheckedChange)="onTableItemChecked(data.id, $event)"></td>
+      <td
+        [nzChecked]="query.tableCheckedId.has(data.id)"
+        [nzDisabled]="data.disabled"
+        (nzCheckedChange)="onTableItemChecked(data.id, $event)"
+      ></td>
       <td nzAlign="left" style="display: none">
         <span>{{ data.id }}</span>
       </td>
       <td nzAlign="left"> {{ data.groupName }}</td>
-      <td nzAlign="center" *ngIf="data.category == 'dynamic'"> {{ 'mxk.roles.category.dynamic' | i18n }}</td>
-      <td nzAlign="center" *ngIf="data.category == 'static'"> {{ 'mxk.roles.category.static' | i18n }}</td>
+      <td nzAlign="center" *ngIf="data.category == 'dynamic'"> {{ 'mxk.groups.category.dynamic' | i18n }}</td>
+      <td nzAlign="center" *ngIf="data.category == 'static'"> {{ 'mxk.groups.category.static' | i18n }}</td>
     </tr>
   </tbody>
 </nz-table>
 <div *nzModalFooter style="display: none">
   <button nz-button nzType="default" (click)="onClose($event)">{{ 'mxk.text.close' | i18n }}</button>
   <button nz-button nzType="primary" (click)="onSubmit($event)">{{ 'mxk.text.submit' | i18n }}</button>
-</div>
+</div>