diff --git a/src/model/acl.model.ts b/src/model/acl.model.ts index 709df6ffb6a8a4dc6c2fc12f3301c23fc26de3f6..a931bc009b8956f007746e63c16566cf2912ccb1 100644 --- a/src/model/acl.model.ts +++ b/src/model/acl.model.ts @@ -22,6 +22,7 @@ export class AclObjectIdentity extends BasicModel { public objectIdIdentity: number; public entriesInheriting: boolean; public aclEntries: SidPermissions[]; + public inherited: SidPermissions[]; public constructor(obj?) { super(obj); diff --git a/src/ui/common/permission/Permissions.tsx b/src/ui/common/permission/Permissions.tsx index 823df10a2458011042fc595a21fa9ad28b12b780..5751d9f214bad13804ad9a94c235728eb86e3354 100644 --- a/src/ui/common/permission/Permissions.tsx +++ b/src/ui/common/permission/Permissions.tsx @@ -107,6 +107,7 @@ class Permissions extends React.Component { onInputChange={ this.onInputChange } autocomplete={ autocomplete } autocompleteObj={ autocompleteObj } + inherits={ aclObjectIdentity.entriesInheriting } /> } diff --git a/src/ui/common/permission/PermissionsTableForm.tsx b/src/ui/common/permission/PermissionsTableForm.tsx index b5faf203eb8527592ac0dba381ae9b810d0573b2..fbdc31950a151a25101d2b731cdf3c1b224210f0 100644 --- a/src/ui/common/permission/PermissionsTableForm.tsx +++ b/src/ui/common/permission/PermissionsTableForm.tsx @@ -21,6 +21,7 @@ interface IPermissionsTableFormProps extends React.ClassAttributes { addPermission: (sidPermissions: SidPermissions) => Promise; autocompleteObj: {[key: string]: number}; onInputChange: (e) => void; + inherits?: boolean; } const styles = { @@ -36,6 +37,11 @@ const styles = { }, }, }, + inheritedTitle: { + fontSize: '1rem', + fontFamily: 'Roboto, sans-serif', + fontWeight: 'bold' as 'bold', + }, textField: { margin: 0, }, @@ -72,33 +78,36 @@ class PermissionsTableForm extends React.Component fields.map((entry, index) => { + protected renderRows = ({ fields, suggestions, onInputChange, inherits = false }) => fields.map((entry, index) => { const isNewEntry = index === fields.length - 1; - const {sid} = fields.get(index); - const owner = typeof sid === 'number'; + let {sid} = fields.get(index); + sid = typeof sid === 'object' ? sid.sid : sid; + const owner = this.props.initialValues.ownerSid.sid === sid; return ( - { owner ? this.props.initialValues.ownerSid.sid : !isNewEntry ? sid.sid : ( - - ) } + { + inherits || !isNewEntry ? sid : ( + + ) + } @@ -106,7 +115,7 @@ class PermissionsTableForm extends React.Component @@ -114,7 +123,7 @@ class PermissionsTableForm extends React.Component @@ -122,7 +131,7 @@ class PermissionsTableForm extends React.Component @@ -130,12 +139,12 @@ class PermissionsTableForm extends React.Component { - !owner && ( + !owner && !inherits && ( index < fields.length - 1 ? : @@ -147,7 +156,7 @@ class PermissionsTableForm extends React.Component @@ -171,6 +180,32 @@ class PermissionsTableForm extends React.Component
+ + { inherits && +
+
Inherited permissions
+ + + + Sid + Create + Read + Write + Delete + Manage + + + + + + +
+
+ } ); }