@@ -3,12 +3,14 @@ import { ModalName } from '../../../../data/ModalName';
33import { ISqlManage } from '@actiontech/shared/lib/api/sqle/service/common' ;
44import { SupportLanguage } from '@actiontech/shared/lib/enum' ;
55import {
6- ActiontechTableActionsWithPermissions ,
76 PERMISSIONS ,
8- PermissionsConstantType ,
9- ActiontechTableToolbarActionWithPermissions
7+ PermissionsConstantType
108} from '@actiontech/shared/lib/features' ;
119import { ACTIONTECH_TABLE_ACTION_BUTTON_WIDTH } from '@actiontech/shared/lib/components/ActiontechTable/hooks/useTableAction' ;
10+ import {
11+ ActiontechTableActionsConfig ,
12+ ActiontechTableToolbarActionMeta
13+ } from '@actiontech/shared' ;
1214
1315export const SqlManagementRowAction = (
1416 openModal : ( name : ModalName , row ?: ISqlManage ) => void ,
@@ -19,19 +21,13 @@ export const SqlManagementRowAction = (
1921 checkActionPermission : (
2022 requiredPermission : PermissionsConstantType
2123 ) => boolean ,
22- onPushToCoding : ( batch : boolean , record ?: ISqlManage ) => void
23- ) : ActiontechTableActionsWithPermissions < ISqlManage > => {
24+ onPushToCoding : ( batch : boolean , record ?: ISqlManage ) => void ,
25+ username : string
26+ ) : ActiontechTableActionsConfig < ISqlManage > => {
2427 const getWidth = ( ) => {
25- if (
26- checkActionPermission (
27- PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . ACTION_LAYOUT
28- )
29- ) {
30- return language === SupportLanguage . enUS
31- ? 350
32- : ACTIONTECH_TABLE_ACTION_BUTTON_WIDTH * 3 ;
33- }
34- return 110 ;
28+ return language === SupportLanguage . enUS
29+ ? 350
30+ : ACTIONTECH_TABLE_ACTION_BUTTON_WIDTH * 3 ;
3531 } ;
3632
3733 return {
@@ -47,7 +43,15 @@ export const SqlManagementRowAction = (
4743 }
4844 } ;
4945 } ,
50- permissions : PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . ASSIGNMENT
46+ permissions : ( record ) => {
47+ return (
48+ ( checkActionPermission (
49+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . ASSIGNMENT
50+ ) ||
51+ record ?. assignees ?. includes ( username ) ) ??
52+ false
53+ ) ;
54+ }
5155 } ,
5256 {
5357 text : t ( 'sqlManagement.table.action.single.updateStatus.triggerText' ) ,
@@ -59,7 +63,15 @@ export const SqlManagementRowAction = (
5963 }
6064 } ;
6165 } ,
62- permissions : PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . UPDATE_STATUS
66+ permissions : ( record ) => {
67+ return (
68+ ( checkActionPermission (
69+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . UPDATE_STATUS
70+ ) ||
71+ record ?. assignees ?. includes ( username ) ) ??
72+ false
73+ ) ;
74+ }
6375 }
6476 ] ,
6577 moreButtons : [
@@ -69,7 +81,15 @@ export const SqlManagementRowAction = (
6981 onClick : ( record ) => {
7082 openModal ( ModalName . Change_SQL_Priority , record ) ;
7183 } ,
72- permissions : PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . UPDATE_PRIORITY
84+ permissions : ( record ) => {
85+ return (
86+ ( checkActionPermission (
87+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . UPDATE_PRIORITY
88+ ) ||
89+ record ?. assignees ?. includes ( username ) ) ??
90+ false
91+ ) ;
92+ }
7393 } ,
7494 {
7595 text : t ( 'sqlManagement.table.action.analyze' ) ,
@@ -84,22 +104,35 @@ export const SqlManagementRowAction = (
84104 onClick : ( record ) => {
85105 openCreateSqlManagementExceptionModal ( record ) ;
86106 } ,
87- permissions :
88- PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . CREATE_SQL_EXCEPTION
107+ permissions : ( ) =>
108+ checkActionPermission (
109+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . CREATE_SQL_EXCEPTION
110+ )
89111 } ,
90112 {
91113 text : t ( 'sqlManagement.table.action.createWhitelist' ) ,
92114 key : 'create-whitelist' ,
93115 onClick : ( record ) => {
94116 onCreateWhitelist ( record ) ;
95117 } ,
96- permissions : PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . CREATE_WHITE_LIST
118+ permissions : ( ) =>
119+ checkActionPermission (
120+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . CREATE_WHITE_LIST
121+ )
97122 } ,
98123 {
99124 key : 'push-to-coding' ,
100125 text : t ( 'sqlManagement.table.action.batch.pushToCoding' ) ,
101126 onClick : ( record ) => onPushToCoding ( false , record ) ,
102- permissions : PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . PUSH_TO_CODING
127+ permissions : ( record ) => {
128+ return (
129+ ( checkActionPermission (
130+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . PUSH_TO_CODING
131+ ) ||
132+ record ?. assignees ?. includes ( username ) ) ??
133+ false
134+ ) ;
135+ }
103136 }
104137 ]
105138 } ;
@@ -116,8 +149,12 @@ export const SqlManagementTableToolbarActions = (
116149 isHighPriority : boolean ,
117150 setAssigneeSelf : ( value : boolean ) => void ,
118151 setIsHighPriority : ( value : boolean ) => void ,
119- onPushToCoding : ( batch : boolean , record ?: ISqlManage ) => void
120- ) : ActiontechTableToolbarActionWithPermissions => {
152+ onPushToCoding : ( batch : boolean , record ?: ISqlManage ) => void ,
153+ isCertainAssignees : boolean ,
154+ checkActionPermission : (
155+ requiredPermission : PermissionsConstantType
156+ ) => boolean
157+ ) : ActiontechTableToolbarActionMeta [ ] => {
121158 return [
122159 {
123160 key : 'is-high-priority' ,
@@ -148,7 +185,10 @@ export const SqlManagementTableToolbarActions = (
148185 onBatchAssignment ( ) ;
149186 }
150187 } ,
151- permissions : PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . BATCH_ASSIGNMENT
188+ permissions :
189+ checkActionPermission (
190+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . BATCH_ASSIGNMENT
191+ ) || isCertainAssignees
152192 } ,
153193 {
154194 key : 'batch-solve' ,
@@ -163,7 +203,10 @@ export const SqlManagementTableToolbarActions = (
163203 disabled : batchSolveLoading
164204 }
165205 } ,
166- permissions : PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . BATCH_RESOLVE
206+ permissions :
207+ checkActionPermission (
208+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . BATCH_RESOLVE
209+ ) || isCertainAssignees
167210 } ,
168211 {
169212 key : 'batch-ignore' ,
@@ -178,7 +221,10 @@ export const SqlManagementTableToolbarActions = (
178221 disabled : batchIgnoreLoading
179222 }
180223 } ,
181- permissions : PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . BATCH_IGNORE
224+ permissions :
225+ checkActionPermission (
226+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . BATCH_IGNORE
227+ ) || isCertainAssignees
182228 } ,
183229 {
184230 key : 'push-to-coding' ,
@@ -187,7 +233,10 @@ export const SqlManagementTableToolbarActions = (
187233 disabled,
188234 onClick : ( ) => onPushToCoding ( true )
189235 } ,
190- permissions : PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . PUSH_TO_CODING
236+ permissions :
237+ checkActionPermission (
238+ PERMISSIONS . ACTIONS . SQLE . SQL_MANAGEMENT . PUSH_TO_CODING
239+ ) || isCertainAssignees
191240 }
192241 ] ;
193242} ;
0 commit comments