@@ -58,8 +58,16 @@ import keycloak from "@app/keycloak";
58
58
import {
59
59
RBAC ,
60
60
RBAC_TYPE ,
61
+ analysisReadScopes ,
62
+ analysisWriteScopes ,
61
63
applicationsWriteScopes ,
64
+ assessmentReadScopes ,
65
+ assessmentWriteScopes ,
66
+ credentialsWriteScopes ,
67
+ dependenciesWriteScopes ,
62
68
importsWriteScopes ,
69
+ reviewsReadScopes ,
70
+ reviewsWriteScopes ,
63
71
tasksReadScopes ,
64
72
tasksWriteScopes ,
65
73
} from "@app/rbac" ;
@@ -542,8 +550,16 @@ export const ApplicationsTable: React.FC = () => {
542
550
const userScopes : string [ ] = token ?. scope . split ( " " ) || [ ] ,
543
551
importWriteAccess = checkAccess ( userScopes , importsWriteScopes ) ,
544
552
applicationWriteAccess = checkAccess ( userScopes , applicationsWriteScopes ) ,
553
+ assessmentWriteAccess = checkAccess ( userScopes , assessmentWriteScopes ) ,
554
+ analysisWriteAccess = checkAccess ( userScopes , analysisWriteScopes ) ,
555
+ assessmentReadAccess = checkAccess ( userScopes , assessmentReadScopes ) ,
556
+ credentialsWriteAccess = checkAccess ( userScopes , credentialsWriteScopes ) ,
557
+ dependenciesWriteAccess = checkAccess ( userScopes , dependenciesWriteScopes ) ,
558
+ analysisReadAccess = checkAccess ( userScopes , analysisReadScopes ) ,
545
559
tasksReadAccess = checkAccess ( userScopes , tasksReadScopes ) ,
546
- tasksWriteAccess = checkAccess ( userScopes , tasksWriteScopes ) ;
560
+ tasksWriteAccess = checkAccess ( userScopes , tasksWriteScopes ) ,
561
+ reviewsWriteAccess = checkAccess ( userScopes , reviewsWriteScopes ) ,
562
+ reviewsReadAccess = checkAccess ( userScopes , reviewsReadScopes ) ;
547
563
548
564
const areAppsInWaves = selectedRows . some (
549
565
( application ) => application . migrationWave !== null
@@ -985,15 +1001,26 @@ export const ApplicationsTable: React.FC = () => {
985
1001
< Td isActionCell id = "row-actions" >
986
1002
< ActionsColumn
987
1003
items = { [
988
- {
989
- title : t ( "actions.assess" ) ,
990
- onClick : ( ) => assessSelectedApp ( application ) ,
991
- } ,
992
- {
993
- title : t ( "actions.review" ) ,
994
- onClick : ( ) => reviewSelectedApp ( application ) ,
995
- } ,
996
- ...( application ?. assessments ?. length
1004
+ ...( assessmentWriteAccess
1005
+ ? [
1006
+ {
1007
+ title : t ( "actions.assess" ) ,
1008
+ onClick : ( ) =>
1009
+ assessSelectedApp ( application ) ,
1010
+ } ,
1011
+ ]
1012
+ : [ ] ) ,
1013
+ ...( reviewsWriteAccess
1014
+ ? [
1015
+ {
1016
+ title : t ( "actions.review" ) ,
1017
+ onClick : ( ) =>
1018
+ reviewSelectedApp ( application ) ,
1019
+ } ,
1020
+ ]
1021
+ : [ ] ) ,
1022
+ ...( application ?. assessments ?. length &&
1023
+ assessmentWriteAccess
997
1024
? [
998
1025
{
999
1026
title : t ( "actions.discardAssessment" ) ,
@@ -1002,7 +1029,7 @@ export const ApplicationsTable: React.FC = () => {
1002
1029
} ,
1003
1030
]
1004
1031
: [ ] ) ,
1005
- ...( application ?. review
1032
+ ...( application ?. review && reviewsWriteAccess
1006
1033
? [
1007
1034
{
1008
1035
title : t ( "actions.discardReview" ) ,
@@ -1011,31 +1038,50 @@ export const ApplicationsTable: React.FC = () => {
1011
1038
} ,
1012
1039
]
1013
1040
: [ ] ) ,
1014
- {
1015
- title : t ( "actions.delete" ) ,
1016
- onClick : ( ) =>
1017
- setApplicationsToDelete ( [ application ] ) ,
1018
- } ,
1019
- {
1020
- title : t ( "actions.manageDependencies" ) ,
1021
- onClick : ( ) =>
1022
- setApplicationDependenciesToManage ( application ) ,
1023
- } ,
1024
- {
1025
- title : t ( "actions.manageCredentials" ) ,
1026
- onClick : ( ) =>
1027
- setSaveApplicationsCredentialsModalState ( [
1028
- application ,
1029
- ] ) ,
1030
- } ,
1031
- {
1032
- title : t ( "actions.analysisDetails" ) ,
1033
- onClick : ( ) =>
1034
- setTaskToView ( {
1035
- name : application . name ,
1036
- task : getTask ( application ) ?. id ,
1037
- } ) ,
1038
- } ,
1041
+ ...( applicationWriteAccess
1042
+ ? [
1043
+ {
1044
+ title : t ( "actions.delete" ) ,
1045
+ onClick : ( ) =>
1046
+ setApplicationsToDelete ( [ application ] ) ,
1047
+ } ,
1048
+ ]
1049
+ : [ ] ) ,
1050
+ ...( dependenciesWriteAccess
1051
+ ? [
1052
+ {
1053
+ title : t ( "actions.manageDependencies" ) ,
1054
+ onClick : ( ) =>
1055
+ setApplicationDependenciesToManage (
1056
+ application
1057
+ ) ,
1058
+ } ,
1059
+ ]
1060
+ : [ ] ) ,
1061
+
1062
+ ...( credentialsWriteAccess
1063
+ ? [
1064
+ {
1065
+ title : t ( "actions.manageCredentials" ) ,
1066
+ onClick : ( ) =>
1067
+ setSaveApplicationsCredentialsModalState ( [
1068
+ application ,
1069
+ ] ) ,
1070
+ } ,
1071
+ ]
1072
+ : [ ] ) ,
1073
+ ...( analysisReadAccess
1074
+ ? [
1075
+ {
1076
+ title : t ( "actions.analysisDetails" ) ,
1077
+ onClick : ( ) =>
1078
+ setTaskToView ( {
1079
+ name : application . name ,
1080
+ task : getTask ( application ) ?. id ,
1081
+ } ) ,
1082
+ } ,
1083
+ ]
1084
+ : [ ] ) ,
1039
1085
...( isTaskCancellable ( application ) &&
1040
1086
tasksReadAccess &&
1041
1087
tasksWriteAccess
0 commit comments