mirror of https://github.com/rancher/ui.git
Fix adding member issue
https://github.com/rancher/rancher/issues/16320
This commit is contained in:
parent
ab0e965819
commit
d3ae679dbd
|
|
@ -2,7 +2,6 @@ import Controller from '@ember/controller';
|
|||
import NewOrEdit from 'ui/mixins/new-or-edit';
|
||||
import { get } from '@ember/object';
|
||||
// import { all as PromiseAll } from 'rsvp';
|
||||
import { computed } from '@ember/object';
|
||||
|
||||
const ROLE_KINDS = [
|
||||
{ id: 'User', },
|
||||
|
|
@ -18,14 +17,9 @@ const ROLE_KINDS = [
|
|||
export default Controller.extend(NewOrEdit, {
|
||||
primaryResource: null,
|
||||
kinds: ROLE_KINDS,
|
||||
defaultUser: null,
|
||||
actions: {
|
||||
doneSaving() {
|
||||
this.transitionToRoute('authenticated.cluster.security.members.index', get(this, 'model.cluster.id'))
|
||||
},
|
||||
},
|
||||
filteredUsers: computed('model.users.@each.{id,state}', function() {
|
||||
return get(this, 'model.users').filter((u) => !u.hasOwnProperty('me') || get(u, 'me') === false)
|
||||
.sortBy('username');
|
||||
}),
|
||||
});
|
||||
|
|
|
|||
|
|
@ -14,17 +14,9 @@ export default Route.extend({
|
|||
const cid = this.paramsFor('authenticated.cluster');
|
||||
|
||||
return hash({
|
||||
cluster: gs.find('cluster', cid.cluster_id, { forceReload: true }),
|
||||
roles: get(this, 'roleTemplateService').get('allFilteredRoleTemplates'),
|
||||
users: gs.findAll('user'),
|
||||
cluster: gs.find('cluster', cid.cluster_id, { forceReload: true }),
|
||||
roles: get(this, 'roleTemplateService').get('allFilteredRoleTemplates'),
|
||||
roleBindings: gs.findAll('clusterRoleTemplateBinding'),
|
||||
});
|
||||
},
|
||||
|
||||
setupController(controller, model) {
|
||||
this._super(controller, model);
|
||||
|
||||
let dfu = get(model, 'users.firstObject');
|
||||
|
||||
controller.setProperties({ defaultUser: dfu, });
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@
|
|||
<div class="box mt-30">
|
||||
{{form-scoped-roles
|
||||
model=model
|
||||
filtered=filteredUsers
|
||||
defaultUser=defaultUser
|
||||
type="cluster"
|
||||
cancel=(action "doneSaving")
|
||||
doneSaving=(action "doneSaving")
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import Controller from '@ember/controller';
|
||||
import NewOrEdit from 'ui/mixins/new-or-edit';
|
||||
import { get } from '@ember/object';
|
||||
import { computed } from '@ember/object';
|
||||
|
||||
const ROLE_KINDS = [
|
||||
{ id: 'User', },
|
||||
|
|
@ -22,8 +21,4 @@ export default Controller.extend(NewOrEdit, {
|
|||
this.transitionToRoute('authenticated.project.security.members.index', get(this, 'model.project.id'))
|
||||
},
|
||||
},
|
||||
filteredUsers: computed('model.users.@each.{id,state}', function() {
|
||||
return get(this, 'model.users').filter((u) => !u.hasOwnProperty('me') || get(u, 'me') === false)
|
||||
.sortBy('username');
|
||||
}),
|
||||
});
|
||||
|
|
|
|||
|
|
@ -12,17 +12,9 @@ export default Route.extend({
|
|||
const pid = this.paramsFor('authenticated.project');
|
||||
|
||||
return hash({
|
||||
project: gs.find('project', pid.project_id, { forceReload: true }),
|
||||
roles: get(this, 'roleTemplateService').get('allFilteredRoleTemplates'),
|
||||
users: gs.findAll('user'),
|
||||
project: gs.find('project', pid.project_id, { forceReload: true }),
|
||||
roles: get(this, 'roleTemplateService').get('allFilteredRoleTemplates'),
|
||||
roleBindings: gs.findAll('projectRoleTemplateBinding'),
|
||||
});
|
||||
},
|
||||
|
||||
setupController(controller, model) {
|
||||
this._super(controller, model);
|
||||
|
||||
let dfu = get(model, 'users.firstObject');
|
||||
|
||||
controller.setProperties({ defaultUser: dfu, });
|
||||
},
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@
|
|||
<div class="box mt-30">
|
||||
{{form-scoped-roles
|
||||
model=model
|
||||
filtered=filteredUsers
|
||||
defaultUser=defaultUser
|
||||
type="project"
|
||||
cancel=(action "doneSaving")
|
||||
doneSaving=(action "doneSaving")
|
||||
|
|
|
|||
|
|
@ -27,14 +27,12 @@ export default Component.extend(NewOrEdit, {
|
|||
init() {
|
||||
this._super(...arguments);
|
||||
|
||||
let dfu = get(this, 'defaultUser');
|
||||
let model = { type: `${ get(this, 'type') }RoleTemplateBinding`, };
|
||||
|
||||
set(model, `${ get(this, 'type') }Id`, get(this, `model.${ get(this, 'type') }.id`))
|
||||
|
||||
setProperties(this, {
|
||||
primaryResource: this.make(model),
|
||||
defaultUser: dfu,
|
||||
stdUser: `${ get(this, 'type') }-member`,
|
||||
admin: `${ get(this, 'type') }-owner`,
|
||||
cTyped: get(this, 'type').capitalize(),
|
||||
|
|
@ -214,26 +212,17 @@ export default Component.extend(NewOrEdit, {
|
|||
});
|
||||
}),
|
||||
|
||||
mode: computed('editing', 'defaultUser', {
|
||||
mode: computed('editing', {
|
||||
get() {
|
||||
let editing = get(this, 'editing');
|
||||
let dfu = get(this, 'defaultUser');
|
||||
let current = dfu.get(`${ get(this, 'type') }RoleBindings`);
|
||||
let mode = null;
|
||||
|
||||
if (editing && current.length === 1) {
|
||||
mode = get(current, 'firstObject.roleTemplateId');
|
||||
} else if (editing && current.length > 1){
|
||||
mode = CUSTOM;
|
||||
} else {
|
||||
const id = `${ get(this, 'type') }-member`;
|
||||
const role = get(this, 'model.roles').findBy('id', id);
|
||||
const id = `${ get(this, 'type') }-member`;
|
||||
const role = get(this, 'model.roles').findBy('id', id);
|
||||
|
||||
if ( role && get(role, 'locked') !== true ) {
|
||||
mode = `${ get(this, 'type') }-member`;
|
||||
} else {
|
||||
mode = CUSTOM;
|
||||
}
|
||||
if ( role && get(role, 'locked') !== true ) {
|
||||
mode = `${ get(this, 'type') }-member`;
|
||||
} else {
|
||||
mode = CUSTOM;
|
||||
}
|
||||
|
||||
return mode;
|
||||
|
|
@ -277,9 +266,7 @@ export default Component.extend(NewOrEdit, {
|
|||
return false;
|
||||
}
|
||||
|
||||
const user = get(this, 'model.users').find((user) => (get(user, 'principalIds') || []).indexOf(get(principal, 'id')) > -1 );
|
||||
const current = user.get(`${ get(this, 'type') }RoleBindings`);
|
||||
|
||||
const current = (get(this, 'model.roleBindings') || []).filterBy('userPrincipalId', get(principal, 'id'));
|
||||
|
||||
if (get(this, 'mode') === 'custom') {
|
||||
if (get(this, 'customToAdd.length') < 1) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue