mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-11 16:05:44 +01:00
Take verbs of role for initial advanced permission settings
This commit is contained in:
@@ -17,6 +17,7 @@ import {
|
|||||||
import * as validator from "../components/permissionValidation";
|
import * as validator from "../components/permissionValidation";
|
||||||
import RoleSelector from "../components/RoleSelector";
|
import RoleSelector from "../components/RoleSelector";
|
||||||
import AdvancedPermissionsDialog from "./AdvancedPermissionsDialog";
|
import AdvancedPermissionsDialog from "./AdvancedPermissionsDialog";
|
||||||
|
import { findVerbsForRole } from "../modules/permissions";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
availableRoles: RepositoryRole[],
|
availableRoles: RepositoryRole[],
|
||||||
@@ -142,10 +143,12 @@ class CreatePermissionForm extends React.Component<Props, State> {
|
|||||||
|
|
||||||
const availableRoleNames = availableRoles.map(r => r.name);
|
const availableRoleNames = availableRoles.map(r => r.name);
|
||||||
|
|
||||||
|
const selectedVerbs = role ? findVerbsForRole(availableRoles, role) : verbs;
|
||||||
|
|
||||||
const advancedDialog = showAdvancedDialog ? (
|
const advancedDialog = showAdvancedDialog ? (
|
||||||
<AdvancedPermissionsDialog
|
<AdvancedPermissionsDialog
|
||||||
availableVerbs={availableVerbs}
|
availableVerbs={availableVerbs}
|
||||||
selectedVerbs={verbs}
|
selectedVerbs={selectedVerbs}
|
||||||
onClose={this.closeAdvancedPermissionsDialog}
|
onClose={this.closeAdvancedPermissionsDialog}
|
||||||
onSubmit={this.submitAdvancedPermissionsDialog}
|
onSubmit={this.submitAdvancedPermissionsDialog}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ import {
|
|||||||
modifyPermission,
|
modifyPermission,
|
||||||
isModifyPermissionPending,
|
isModifyPermissionPending,
|
||||||
deletePermission,
|
deletePermission,
|
||||||
isDeletePermissionPending
|
isDeletePermissionPending,
|
||||||
|
findVerbsForRole
|
||||||
} from "../modules/permissions";
|
} from "../modules/permissions";
|
||||||
import { connect } from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import type { History } from "history";
|
import type { History } from "history";
|
||||||
@@ -131,11 +132,15 @@ class SinglePermission extends React.Component<Props, State> {
|
|||||||
</td>
|
</td>
|
||||||
);
|
);
|
||||||
|
|
||||||
const advancedDialg = showAdvancedDialog ? (
|
const selectedVerbs = permission.role
|
||||||
|
? findVerbsForRole(availableRepositoryRoles, permission.role)
|
||||||
|
: permission.verbs;
|
||||||
|
|
||||||
|
const advancedDialog = showAdvancedDialog ? (
|
||||||
<AdvancedPermissionsDialog
|
<AdvancedPermissionsDialog
|
||||||
readOnly={readOnly}
|
readOnly={readOnly}
|
||||||
availableVerbs={availableRepositoryVerbs}
|
availableVerbs={availableRepositoryVerbs}
|
||||||
selectedVerbs={permission.verbs}
|
selectedVerbs={selectedVerbs}
|
||||||
onClose={this.closeAdvancedPermissionsDialog}
|
onClose={this.closeAdvancedPermissionsDialog}
|
||||||
onSubmit={this.submitAdvancedPermissionsDialog}
|
onSubmit={this.submitAdvancedPermissionsDialog}
|
||||||
/>
|
/>
|
||||||
@@ -174,7 +179,7 @@ class SinglePermission extends React.Component<Props, State> {
|
|||||||
deletePermission={this.deletePermission}
|
deletePermission={this.deletePermission}
|
||||||
loading={this.props.deleteLoading}
|
loading={this.props.deleteLoading}
|
||||||
/>
|
/>
|
||||||
{advancedDialg}
|
{advancedDialog}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -739,3 +739,17 @@ export function getModifyPermissionsFailure(
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function findVerbsForRole(
|
||||||
|
availableRepositoryRoles: RepositoryRole[],
|
||||||
|
roleName: string
|
||||||
|
) {
|
||||||
|
const matchingRole = availableRepositoryRoles.find(
|
||||||
|
role => roleName === role.name
|
||||||
|
);
|
||||||
|
if (matchingRole) {
|
||||||
|
return matchingRole.verbs;
|
||||||
|
} else {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user