Procházet zdrojové kódy

用户组-资源绑定关系

MaxKey před 1 rokem
rodič
revize
6e03a08599

+ 1 - 1
maxkey-persistence/src/main/resources/org/dromara/maxkey/persistence/mapper/xml/mysql/GroupPrivilegesMapper.xml

@@ -40,7 +40,7 @@
     </update>
     
     <insert id="insertGroupPrivileges"  parameterType="java.util.List">
-	    insert into mxk_role_privileges ( id,appid,groupid,resourceid,status,instid) 
+	    insert into mxk_group_privileges ( id,appid,groupid,resourceid,status,instid) 
 	    values 
 	    <foreach collection="list" item="item" index="index" separator=",">
 	        (#{item.id},#{item.appId},#{item.groupId},#{item.resourceId},#{item.status},#{item.instId})

+ 57 - 26
maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/permissions/privileges/privileges.component.html

@@ -7,8 +7,14 @@
         <nz-form-item>
           <nz-form-label nzFor="groupName">{{ 'mxk.roles.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>
@@ -17,23 +23,28 @@
           <nz-form-label nzFor="name">{{ 'mxk.resources.appName' | i18n }}</nz-form-label>
           <nz-form-control>
             <nz-input-group nzSearch [nzAddOnAfter]="suffixButton">
-              <input nz-input [(ngModel)]="query.params.appName" [ngModelOptions]="{ standalone: true }" name="appName"
-                readonly placeholder="" id="appName" />
+              <input
+                nz-input
+                [(ngModel)]="query.params.appName"
+                [ngModelOptions]="{ standalone: true }"
+                name="appName"
+                readonly
+                placeholder=""
+                id="appName"
+              />
             </nz-input-group>
             <ng-template #suffixButton>
-              <button nz-button nzType="primary" (click)="onSelect($event)" nzSearch>{{ 'mxk.text.select' | i18n
-                }}</button>
+              <button nz-button nzType="primary" (click)="onSelect($event)" nzSearch>{{ 'mxk.text.select' | i18n }}</button>
             </ng-template>
           </nz-form-control>
         </nz-form-item>
       </div>
       <div nz-col [nzSpan]="query.expandForm ? 24 : 4" [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>
@@ -44,39 +55,59 @@
   </div>
   <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
     <div nz-col [nzSpan]="10" class="grid-border">
-      <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)">
+      <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)"
+      >
         <thead>
           <tr>
             <!--<th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate" (nzCheckedChange)="onTableAllChecked($event)"></th>
             -->
             <th nzAlign="center"></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" 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 == '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>
     <div nz-col [nzSpan]="14" class="grid-border">
-      <nz-tree #nzTreeComponent nzShowLine="false" [nzCheckable]="treeNodes.checkable"
-        [nzCheckedKeys]="treeNodes.checkedKeys" nzBlockNode [nzData]="treeNodes.nodes" (nzDblClick)="openFolder($event)"
-        [nzTreeTemplate]="nzTreeTemplate"></nz-tree>
+      <nz-tree
+        #nzTreeComponent
+        nzShowLine="false"
+        [nzCheckable]="treeNodes.checkable"
+        [nzCheckedKeys]="treeNodes.checkedKeys"
+        nzBlockNode
+        [nzData]="treeNodes.nodes"
+        (nzDblClick)="openFolder($event)"
+        [nzTreeTemplate]="nzTreeTemplate"
+      ></nz-tree>
       <ng-template #nzTreeTemplate let-node let-origin="origin">
         <span class="custom-node">
           <span *ngIf="!node.isLeaf">
@@ -91,4 +122,4 @@
       </ng-template>
     </div>
   </div>
-</nz-card>
+</nz-card>

+ 5 - 5
maxkey-web-frontend/maxkey-web-mgt-app/src/app/routes/permissions/privileges/privileges.component.ts

@@ -134,9 +134,9 @@ export class PrivilegesComponent implements OnInit {
 
   onSave(e: MouseEvent): void {
     e.preventDefault();
-    let _roleId: String = '';
+    let _groupId: String = '';
     this.query.tableCheckedId.forEach(value => {
-      _roleId = value;
+      _groupId = value;
     });
 
     let _resourceId = '';
@@ -152,10 +152,10 @@ export class PrivilegesComponent implements OnInit {
       _resourceId = `${node.key},${_resourceId}`;
     });
 
-    if (this.query.params.appId == '' || _roleId == '' || _resourceId == '') {
+    if (this.query.params.appId == '' || _groupId == '' || _resourceId == '') {
       return;
     }
-    this.groupPrivilegesService.update({ appId: this.query.params.appId, roleId: _roleId, resourceId: _resourceId }).subscribe(res => {
+    this.groupPrivilegesService.update({ appId: this.query.params.appId, groupId: _groupId, resourceId: _resourceId }).subscribe(res => {
       this.query.submitLoading = false;
       this.query.tableLoading = false;
       if (res.code == 0) {
@@ -236,7 +236,7 @@ export class PrivilegesComponent implements OnInit {
     this.onTableAllChecked(false);
     this.updateTableCheckedSet(id, checked);
     this.refreshTableCheckedStatus();
-    this.groupPrivilegesService.getByParams({ appId: this.query.params.appId, roleId: id }).subscribe(res => {
+    this.groupPrivilegesService.getByParams({ appId: this.query.params.appId, groupId: id }).subscribe(res => {
       this.treeNodes.checkedKeys = [];
       for (let i = 0; i < res.data.length; i++) {
         this.treeNodes.checkedKeys.push(res.data[i].resourceId);