mirror of https://github.com/rancher/dashboard.git
Ensure user cannot unassign in assign page, improve visuals
This commit is contained in:
parent
bae4f7176b
commit
ace0bc47b9
|
|
@ -2194,6 +2194,7 @@ rbac:
|
||||||
description: Additional roles to define more fine-grain permissions model.
|
description: Additional roles to define more fine-grain permissions model.
|
||||||
unknownRole:
|
unknownRole:
|
||||||
description: No description provided
|
description: No description provided
|
||||||
|
assignOnlyRole: This role is already assigned
|
||||||
role:
|
role:
|
||||||
admin:
|
admin:
|
||||||
label: Administrator
|
label: Administrator
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,10 @@ export default {
|
||||||
type: String,
|
type: String,
|
||||||
default: _VIEW,
|
default: _VIEW,
|
||||||
},
|
},
|
||||||
|
assignOnly: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
type: {
|
type: {
|
||||||
type: String,
|
type: String,
|
||||||
default: 'group',
|
default: 'group',
|
||||||
|
|
@ -83,6 +87,7 @@ export default {
|
||||||
sortedRoles: null,
|
sortedRoles: null,
|
||||||
selectedRoles: [],
|
selectedRoles: [],
|
||||||
startingSelectedRoles: [],
|
startingSelectedRoles: [],
|
||||||
|
assignOnlyRoles: {},
|
||||||
roleChanges: {}
|
roleChanges: {}
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
@ -127,6 +132,7 @@ export default {
|
||||||
update() {
|
update() {
|
||||||
this.selectedRoles = [];
|
this.selectedRoles = [];
|
||||||
this.startingSelectedRoles = [];
|
this.startingSelectedRoles = [];
|
||||||
|
this.assignOnlyRoles = {};
|
||||||
if (this.isCreate) {
|
if (this.isCreate) {
|
||||||
// Start with the new user default for each role
|
// Start with the new user default for each role
|
||||||
Object.values(this.sortedRoles).forEach((roles) => {
|
Object.values(this.sortedRoles).forEach((roles) => {
|
||||||
|
|
@ -156,6 +162,8 @@ export default {
|
||||||
roleId: mappedRole.id,
|
roleId: mappedRole.id,
|
||||||
bindingId: boundRole.id
|
bindingId: boundRole.id
|
||||||
});
|
});
|
||||||
|
// Checkboxes should be disabled, besides normal 'mode' ways, if we're only assigning and not removing existing roles
|
||||||
|
this.assignOnlyRoles[mappedRole.id] = this.assignOnly;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
@ -264,6 +272,7 @@ export default {
|
||||||
return verbsRequiredForLogin.includes(verbs[0]);
|
return verbsRequiredForLogin.includes(verbs[0]);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
@ -285,6 +294,8 @@ export default {
|
||||||
:key="getUnique(roleType, role.id, 'checkbox')"
|
:key="getUnique(roleType, role.id, 'checkbox')"
|
||||||
v-model="selectedRoles"
|
v-model="selectedRoles"
|
||||||
:value-when-true="role.id"
|
:value-when-true="role.id"
|
||||||
|
:disabled="!!assignOnlyRoles[role.id]"
|
||||||
|
:tooltip-key="!!assignOnlyRoles[role.id] ? 'rbac.globalRoles.assignOnlyRole' : ''"
|
||||||
:label="role.nameDisplay"
|
:label="role.nameDisplay"
|
||||||
:mode="mode"
|
:mode="mode"
|
||||||
@input="checkboxChanged"
|
@input="checkboxChanged"
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ export default {
|
||||||
<form>
|
<form>
|
||||||
<SelectPrincipal :retain-selection="true" class="mb-20" :show-my-group-types="['group']" :search-group-types="'group'" @add="setPrincipal" />
|
<SelectPrincipal :retain-selection="true" class="mb-20" :show-my-group-types="['group']" :search-group-types="'group'" @add="setPrincipal" />
|
||||||
|
|
||||||
<GlobalRoleBindings ref="grb" :group-principal-id="principalId" :mode="mode" />
|
<GlobalRoleBindings ref="grb" :group-principal-id="principalId" :mode="mode" :assign-only="true" />
|
||||||
|
|
||||||
<FooterComponent
|
<FooterComponent
|
||||||
:mode="mode"
|
:mode="mode"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue