@@ -89,6 +89,7 @@ type EditPermissionModalType = {
8989 permissionChanged ?: ( ) => void
9090 isEditUserPermission ?: boolean
9191 isEditGroupPermission ?: boolean
92+ isEditRolePermission ?: boolean
9293}
9394
9495type EditPermissionsType = Omit < EditPermissionModalType , 'onSave' > & {
@@ -175,12 +176,12 @@ const _EditPermissionsModal: FC<EditPermissionModalType> = withAdminPermissions(
175176
176177 const levelUpperCase = level . toUpperCase ( )
177178 const viewPermission = `VIEW_${ levelUpperCase } `
178- const projectId =
179- props . level === 'project'
180- ? props . id
181- : props . level === 'environment'
182- ? props . parentId
183- : undefined
179+ let projectId : number | string | undefined
180+ if ( props . level === 'project' ) {
181+ projectId = props . id
182+ } else if ( props . level === 'environment' ) {
183+ projectId = props . parentId
184+ }
184185
185186 const [ permissionWasCreated , setPermissionWasCreated ] =
186187 useState < boolean > ( false )
@@ -259,11 +260,14 @@ const _EditPermissionsModal: FC<EditPermissionModalType> = withAdminPermissions(
259260 )
260261 }
261262
262- const foundPermission = isGroup
263- ? findPermissionByGroup ( )
264- : role
265- ? findPermissionByRole ( )
266- : findPermissionByUser ( )
263+ let foundPermission
264+ if ( isGroup ) {
265+ foundPermission = findPermissionByGroup ( )
266+ } else if ( role ) {
267+ foundPermission = findPermissionByRole ( )
268+ } else {
269+ foundPermission = findPermissionByUser ( )
270+ }
267271
268272 const isProjectOrEnvironmentRole =
269273 role && ( level === 'project' || level === 'environment' )
@@ -708,7 +712,7 @@ const _EditPermissionsModal: FC<EditPermissionModalType> = withAdminPermissions(
708712 deleteRolePermissionUser ( {
709713 organisation_id : id ,
710714 role_id : roleId ,
711- user_id : roleSelected ?. user_role_id ! ,
715+ user_id : roleSelected ?. user_role_id ?? 0 ,
712716 } ) . then ( onRoleRemoved as any )
713717 }
714718 }
@@ -721,7 +725,7 @@ const _EditPermissionsModal: FC<EditPermissionModalType> = withAdminPermissions(
721725 } ) . then ( onRoleRemoved as any )
722726 } else if ( roleSelected ) {
723727 deleteRolePermissionGroup ( {
724- group_id : roleSelected . group_role_id ! ,
728+ group_id : roleSelected . group_role_id ?? 0 ,
725729 organisation_id : id ,
726730 role_id : roleId ,
727731 } ) . then ( onRoleRemoved as any )
@@ -737,7 +741,7 @@ const _EditPermissionsModal: FC<EditPermissionModalType> = withAdminPermissions(
737741 setRolesSelected (
738742 ( rolesSelected || [ ] ) . concat ( {
739743 group_role_id : undefined ,
740- role : usersData ?. role ! ,
744+ role : usersData ?. role ?? 0 ,
741745 user_role_id : usersData ?. id ,
742746 } ) ,
743747 )
@@ -746,7 +750,7 @@ const _EditPermissionsModal: FC<EditPermissionModalType> = withAdminPermissions(
746750 setRolesSelected (
747751 ( rolesSelected || [ ] ) . concat ( {
748752 group_role_id : groupsData ?. id ,
749- role : groupsData ?. role ! ,
753+ role : groupsData ?. role ?? 0 ,
750754 user_role_id : undefined ,
751755 } ) ,
752756 )
@@ -995,6 +999,7 @@ const EditPermissions: FC<EditPermissionsType> = (props) => {
995999 const {
9961000 envId,
9971001 id,
1002+ isEditRolePermission,
9981003 level,
9991004 onSaveGroup,
10001005 onSaveUser,
@@ -1134,7 +1139,9 @@ const EditPermissions: FC<EditPermissionsType> = (props) => {
11341139 < Flex className = 'table-column px-3' >
11351140 < div className = 'mb-1 font-weight-medium' >
11361141 { `${ first_name } ${ last_name } ` } { ' ' }
1137- { id == AccountStore . getUserId ( ) && '(You)' }
1142+ { String ( id ) ===
1143+ String ( AccountStore . getUserId ( ) ) &&
1144+ '(You)' }
11381145 </ div >
11391146 < div className = 'list-item-subtitle' >
11401147 { email }
@@ -1212,73 +1219,75 @@ const EditPermissions: FC<EditPermissionsType> = (props) => {
12121219 </ div >
12131220 </ FormGroup >
12141221 </ TabItem >
1215- < TabItem tabLabel = 'Roles' >
1216- < PlanBasedAccess className = 'mt-4' feature = { 'RBAC' } theme = 'page' >
1217- < Row space className = 'mt-4' >
1218- < h5 className = 'm-b-0' > { roleTabTitle } </ h5 >
1219- </ Row >
1220- < PanelSearch
1221- id = 'org-members-list'
1222- title = { 'Roles' }
1223- className = 'no-pad'
1224- items = { roles }
1225- itemHeight = { 65 }
1226- header = {
1227- < Row className = 'table-header px-3' >
1228- < div
1229- style = { {
1230- width : rolesWidths [ 0 ] ,
1231- } }
1232- >
1233- Roles
1234- </ div >
1235- < div
1236- style = { {
1237- width : rolesWidths [ 1 ] ,
1238- } }
1239- >
1240- Description
1241- </ div >
1242- </ Row >
1243- }
1244- renderRow = { ( role ) => (
1245- < Row
1246- className = 'list-item clickable cursor-pointer'
1247- key = { role . id }
1248- >
1249- < Row
1250- onClick = { ( ) => editRolePermissions ( role ) }
1251- className = 'table-column px-3'
1252- style = { {
1253- width : rolesWidths [ 0 ] ,
1254- } }
1255- >
1256- { role . name }
1222+ { isEditRolePermission && (
1223+ < TabItem tabLabel = 'Roles' >
1224+ < PlanBasedAccess className = 'mt-4' feature = { 'RBAC' } theme = 'page' >
1225+ < Row space className = 'mt-4' >
1226+ < h5 className = 'm-b-0' > { roleTabTitle } </ h5 >
1227+ </ Row >
1228+ < PanelSearch
1229+ id = 'org-members-list'
1230+ title = { 'Roles' }
1231+ className = 'no-pad'
1232+ items = { roles }
1233+ itemHeight = { 65 }
1234+ header = {
1235+ < Row className = 'table-header px-3' >
1236+ < div
1237+ style = { {
1238+ width : rolesWidths [ 0 ] ,
1239+ } }
1240+ >
1241+ Roles
1242+ </ div >
1243+ < div
1244+ style = { {
1245+ width : rolesWidths [ 1 ] ,
1246+ } }
1247+ >
1248+ Description
1249+ </ div >
12571250 </ Row >
1251+ }
1252+ renderRow = { ( role ) => (
12581253 < Row
1259- className = 'table-column px-3'
1260- onClick = { ( ) => editRolePermissions ( role ) }
1261- style = { {
1262- width : rolesWidths [ 1 ] ,
1263- } }
1254+ className = 'list-item clickable cursor-pointer'
1255+ key = { role . id }
12641256 >
1265- { role . description }
1266- </ Row >
1267- </ Row >
1268- ) }
1269- renderNoResults = {
1270- < Panel title = { 'Roles' } className = 'no-pad' >
1271- < div className = 'search-list' >
1272- < Row className = 'list-item p-3 text-muted' >
1273- { `You currently have no roles.` }
1257+ < Row
1258+ onClick = { ( ) => editRolePermissions ( role ) }
1259+ className = 'table-column px-3'
1260+ style = { {
1261+ width : rolesWidths [ 0 ] ,
1262+ } }
1263+ >
1264+ { role . name }
12741265 </ Row >
1275- </ div >
1276- </ Panel >
1277- }
1278- isLoading = { false }
1279- />
1280- </ PlanBasedAccess >
1281- </ TabItem >
1266+ < Row
1267+ className = 'table-column px-3'
1268+ onClick = { ( ) => editRolePermissions ( role ) }
1269+ style = { {
1270+ width : rolesWidths [ 1 ] ,
1271+ } }
1272+ >
1273+ { role . description }
1274+ </ Row >
1275+ </ Row >
1276+ ) }
1277+ renderNoResults = {
1278+ < Panel title = { 'Roles' } className = 'no-pad' >
1279+ < div className = 'search-list' >
1280+ < Row className = 'list-item p-3 text-muted' >
1281+ { `You currently have no roles.` }
1282+ </ Row >
1283+ </ div >
1284+ </ Panel >
1285+ }
1286+ isLoading = { false }
1287+ />
1288+ </ PlanBasedAccess >
1289+ </ TabItem >
1290+ ) }
12821291 </ Tabs >
12831292 </ div >
12841293 )
0 commit comments