mirror of https://github.com/rancher/ui.git
Fix issue where standard user can not add cluster members
This commit is contained in:
parent
b60cf88156
commit
bb873b5ed9
|
|
@ -25,6 +25,7 @@ export default Component.extend({
|
|||
showCreator: true,
|
||||
toAddCustom: null,
|
||||
_bindings: null,
|
||||
canAddMember: false,
|
||||
|
||||
init() {
|
||||
this._super(...arguments);
|
||||
|
|
@ -34,6 +35,19 @@ export default Component.extend({
|
|||
if (this.registerHook) {
|
||||
this.registerHook(this.saveMembers.bind(this), 'saveMembers');
|
||||
}
|
||||
|
||||
// memberConfig.type indicates the membership type being used (e.g. cluserrolebinding);
|
||||
const memberConfig = get(this, 'memberConfig');
|
||||
|
||||
if (memberConfig && memberConfig.type) {
|
||||
const schema = get(this, 'globalStore').getById('schema', memberConfig.type.toLowerCase());
|
||||
|
||||
if (schema && schema.collectionMethods) {
|
||||
const canAddMember = (schema.collectionMethods || []).includes('POST');
|
||||
|
||||
set(this, 'canAddMember', canAddMember);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
actions: {
|
||||
|
|
@ -72,6 +86,20 @@ export default Component.extend({
|
|||
return get(this, 'users').sortBy('displayName');
|
||||
}),
|
||||
|
||||
// Look at whether the user can update the member type resource
|
||||
// If not, fallback to previous mechanism - must be more than 1 local user
|
||||
canAddUser: computed('filteredUsers', 'access.provider', function () {
|
||||
const filteredUsers = get(this, 'filteredUsers') || [];
|
||||
const provider = get(this, 'access.provider');
|
||||
const canAddMember = get(this, 'canAddMember');
|
||||
|
||||
if (canAddMember || provider !== 'local') {
|
||||
return true;
|
||||
}
|
||||
|
||||
return filteredUsers.length > 1;
|
||||
}),
|
||||
|
||||
buildUpdateList(resource) {
|
||||
let bindings = set(this, 'currentBindings', get(resource, 'roleTemplateBindings'));
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
</table>
|
||||
|
||||
<div class="mt-10">
|
||||
{{#if (and (lte filteredUsers.length 1) (eq access.provider "local"))}}
|
||||
{{#if (not canAddUser)}}
|
||||
{{#tooltip-element
|
||||
type="tooltip-basic"
|
||||
model=(t "formMembers.members.noAddUser")
|
||||
|
|
|
|||
Loading…
Reference in New Issue