diff --git a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js index 8ee1e7edbb..c09baf50fa 100644 --- a/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/containers/CreatePermissionForm.js @@ -17,6 +17,7 @@ import { import * as validator from "../components/permissionValidation"; import RoleSelector from "../components/RoleSelector"; import AdvancedPermissionsDialog from "./AdvancedPermissionsDialog"; +import { findVerbsForRole } from "../modules/permissions"; type Props = { availableRoles: RepositoryRole[], @@ -142,10 +143,12 @@ class CreatePermissionForm extends React.Component { const availableRoleNames = availableRoles.map(r => r.name); + const selectedVerbs = role ? findVerbsForRole(availableRoles, role) : verbs; + const advancedDialog = showAdvancedDialog ? ( diff --git a/scm-ui/src/repos/permissions/containers/SinglePermission.js b/scm-ui/src/repos/permissions/containers/SinglePermission.js index 5fed0084a7..bdb96de0bd 100644 --- a/scm-ui/src/repos/permissions/containers/SinglePermission.js +++ b/scm-ui/src/repos/permissions/containers/SinglePermission.js @@ -6,7 +6,8 @@ import { modifyPermission, isModifyPermissionPending, deletePermission, - isDeletePermissionPending + isDeletePermissionPending, + findVerbsForRole } from "../modules/permissions"; import { connect } from "react-redux"; import type { History } from "history"; @@ -131,11 +132,15 @@ class SinglePermission extends React.Component { ); - const advancedDialg = showAdvancedDialog ? ( + const selectedVerbs = permission.role + ? findVerbsForRole(availableRepositoryRoles, permission.role) + : permission.verbs; + + const advancedDialog = showAdvancedDialog ? ( @@ -174,7 +179,7 @@ class SinglePermission extends React.Component { deletePermission={this.deletePermission} loading={this.props.deleteLoading} /> - {advancedDialg} + {advancedDialog} ); diff --git a/scm-ui/src/repos/permissions/modules/permissions.js b/scm-ui/src/repos/permissions/modules/permissions.js index abd25eb459..276f28f672 100644 --- a/scm-ui/src/repos/permissions/modules/permissions.js +++ b/scm-ui/src/repos/permissions/modules/permissions.js @@ -739,3 +739,17 @@ export function getModifyPermissionsFailure( } return null; } + +export function findVerbsForRole( + availableRepositoryRoles: RepositoryRole[], + roleName: string +) { + const matchingRole = availableRepositoryRoles.find( + role => roleName === role.name + ); + if (matchingRole) { + return matchingRole.verbs; + } else { + return []; + } +}