mirror of https://github.com/rancher/ui.git
commit
84f179844f
|
|
@ -45,6 +45,7 @@ const App = Application.extend({
|
|||
'session',
|
||||
'settings',
|
||||
'store',
|
||||
'tooltip',
|
||||
'user-language',
|
||||
'user-theme',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -12,6 +12,9 @@ export default Route.extend({
|
|||
project: store.find('project', params.project_id),
|
||||
projects: store.findAll('project'),
|
||||
roles: store.findAll('roleTemplate'),
|
||||
policies: store.find('podSecurityPolicyTemplate'),
|
||||
users: store.find('user', null, {forceReload: true}),
|
||||
me: store.find('user', null, {filter: {me: true}}).then(users => get(users, 'firstObject'))
|
||||
});
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -22,8 +22,7 @@ export default Route.extend({
|
|||
roles: store.findAll('roleTemplate'),
|
||||
policies: store.find('podSecurityPolicyTemplate'),
|
||||
users: store.find('user', null, {forceReload: true}),
|
||||
// me: get(this, 'globalStore').find('user', null, {filter: {me: true}}),
|
||||
me: get(this, 'globalStore').find('user', 'admin', {forceReload: true}), // TODO 2.0
|
||||
me: store.find('user', null, {filter: {me: true}}).then(users => get(users, 'firstObject'))
|
||||
});
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ export default Controller.extend({
|
|||
//this.send('goToPrevious');
|
||||
},
|
||||
editPassword() {
|
||||
get(this, 'modal').toggleModal('modal-edit-password');
|
||||
get(this, 'modal').toggleModal('modal-edit-password', {user: get(this, 'model.account')});
|
||||
},
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import Route from '@ember/routing/route';
|
|||
// import { loadScript } from 'ui/utils/load-script';
|
||||
import C from 'ui/utils/constants';
|
||||
// import fetch from 'ember-api-store/utils/fetch';
|
||||
import { get, set } from '@ember/object';
|
||||
import { get/* , set */ } from '@ember/object';
|
||||
|
||||
export default Route.extend({
|
||||
session: service(),
|
||||
|
|
@ -23,15 +23,11 @@ export default Route.extend({
|
|||
// },
|
||||
|
||||
model(/*params, transition*/) {
|
||||
|
||||
var modelOut = EmberObject.create({
|
||||
account: null,
|
||||
// stripeCards: null,
|
||||
});
|
||||
|
||||
return get(this, 'globalStore').find('user', 'admin', {forceReload: true}).then((user) => { // TODO 2.0 'user?me=true'
|
||||
set(modelOut, 'account', user);
|
||||
return modelOut;
|
||||
return get(this, 'globalStore').find('user', null, {forceReload: true, filter: {me: true}}).then((user) => { // TODO 2.0 'user?me=true'
|
||||
return EmberObject.create({
|
||||
account: get(user, 'firstObject'), // dont like this
|
||||
// stripeCards: null,
|
||||
});
|
||||
});
|
||||
|
||||
//only need to populate the passwords for the account right now
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@ var User = Resource.extend({
|
|||
edit: function() {
|
||||
this.get('modalService').toggleModal('modal-edit-account', this);
|
||||
},
|
||||
|
||||
changePassword(password) {
|
||||
this.doAction('changepassword', {newPassword: password});
|
||||
}
|
||||
},
|
||||
|
||||
availableActions: function() {
|
||||
|
|
|
|||
|
|
@ -38,13 +38,7 @@ export default Controller.extend({
|
|||
let store = get(this, 'globalStore');
|
||||
|
||||
if (get(this, 'password.length') > 0) {
|
||||
promises.push(get(this, 'globalStore').rawRequest({
|
||||
url: 'users/admin?action=changepassword', // TODO 2.0
|
||||
method: 'POST',
|
||||
data: {
|
||||
newPassword: get(this, 'password')
|
||||
}
|
||||
}));
|
||||
promises.push(get(this, 'primaryResource').doAction('changepassword', {newPassword: get(this, 'password')}));
|
||||
}
|
||||
|
||||
get(this, 'myGlobalRoles').forEach((role) => {
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ const Eng = Engine.extend({
|
|||
Resolver,
|
||||
dependencies: {
|
||||
services: [
|
||||
'app',
|
||||
'access',
|
||||
'app',
|
||||
'catalog',
|
||||
'clusterStore',
|
||||
'endpoint',
|
||||
|
|
@ -26,6 +26,7 @@ const Eng = Engine.extend({
|
|||
'session',
|
||||
'settings',
|
||||
'store',
|
||||
'tooltip',
|
||||
'user-language',
|
||||
'user-theme',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import $ from 'jquery';
|
||||
import { later, schedule } from '@ember/runloop';
|
||||
import { computed, get, set } from '@ember/object';
|
||||
import { computed, get, set, setProperties } from '@ember/object';
|
||||
import { equal, alias } from '@ember/object/computed';
|
||||
import { inject as service } from '@ember/service';
|
||||
import Controller from '@ember/controller';
|
||||
|
|
@ -35,7 +35,7 @@ export default Controller.extend({
|
|||
router: service(),
|
||||
actions: {
|
||||
started() {
|
||||
this.setProperties({
|
||||
setProperties(this, {
|
||||
'timedOut': false,
|
||||
'waiting': true,
|
||||
'errorMsg': null,
|
||||
|
|
@ -54,9 +54,15 @@ export default Controller.extend({
|
|||
later(() => {
|
||||
get(this, 'access').login(code).then((user) => {
|
||||
if (user.mustChangePassword) {
|
||||
set(this, 'changePassword', true);
|
||||
setProperties(this, {
|
||||
user: user,
|
||||
changePassword: true,
|
||||
});
|
||||
} else {
|
||||
set(this, 'changePassword', false);
|
||||
setProperties(this, {
|
||||
user: null,
|
||||
changePassword: false,
|
||||
});
|
||||
this.send('finishLogin');
|
||||
}
|
||||
}).catch((err) => {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
</div>
|
||||
{{input-edit-password
|
||||
complete="complete"
|
||||
user=user
|
||||
}}
|
||||
{{else}}
|
||||
<h1>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ export default Service.extend({
|
|||
enabled: true, // @TODO-2.0 remove this, always enabled
|
||||
|
||||
// What kind of access control
|
||||
provider: null,
|
||||
provider: 'local', // @TODO-2.0 remove this, and how do i check?
|
||||
|
||||
// Are you an admin
|
||||
admin: null,
|
||||
|
|
@ -109,21 +109,20 @@ export default Service.extend({
|
|||
method: 'POST',
|
||||
data: code,
|
||||
}).then(() => {
|
||||
return this.get('globalStore').rawRequest({
|
||||
url: 'users/admin', // TODO 2.0 need to get exact user on collection
|
||||
method: 'GET',
|
||||
}).then((user) => {
|
||||
this.set('admin', true); // TODO 2.0 super user
|
||||
return user.body;
|
||||
}).catch((res) => {
|
||||
let err;
|
||||
try {
|
||||
err = res.body;
|
||||
} catch(e) {
|
||||
err = {type: 'error', message: 'Error logging in'};
|
||||
}
|
||||
return reject(err);
|
||||
});
|
||||
return this.get('globalStore').find('user', null, {forceReload: true, filter: {me: true}})
|
||||
.then((user) => {
|
||||
this.set('admin', true); // TODO 2.0 super user
|
||||
return user.get('firstObject');
|
||||
})
|
||||
.catch((res) => {
|
||||
let err;
|
||||
try {
|
||||
err = res.body;
|
||||
} catch(e) {
|
||||
err = {type: 'error', message: 'Error logging in'};
|
||||
}
|
||||
return reject(err);
|
||||
});
|
||||
}).catch((res) => {
|
||||
let err;
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import { inject as service } from '@ember/service';
|
|||
export default Component.extend({
|
||||
layout,
|
||||
globalStore: service(),
|
||||
access: service(),
|
||||
|
||||
editing: false,
|
||||
memberArray: null,
|
||||
|
|
|
|||
|
|
@ -27,10 +27,25 @@
|
|||
</table>
|
||||
|
||||
<div class="mt-10">
|
||||
<button class="btn bg-link icon-btn p-0" {{action "addMember" "User"}} disabled={{if (eq filteredUsers.length 0) true}}>
|
||||
<span class="darken"><i class="icon icon-plus text-small"/></span>
|
||||
<span>{{t 'projectsPage.new.form.members.addUser'}}</span>
|
||||
</button>
|
||||
{{#if (and (eq filteredUsers.length 0) (eq access.provider 'local'))}}
|
||||
{{#tooltip-element
|
||||
type="tooltip-basic"
|
||||
model=(t 'projectsPage.new.form.members.noAddUser')
|
||||
tooltipTemplate='tooltip-static'
|
||||
aria-describedby="tooltip-base"
|
||||
tooltipFor="tooltipNoUsers"
|
||||
}}
|
||||
<button class="btn bg-link icon-btn p-0" disabled=true>
|
||||
<span class="darken"><i class="icon icon-plus text-small"/></span>
|
||||
<span>{{t 'projectsPage.new.form.members.addUser'}}</span>
|
||||
</button>
|
||||
{{/tooltip-element}}
|
||||
{{else}}
|
||||
<button class="btn bg-link icon-btn p-0" {{action "addMember" "User"}}>
|
||||
<span class="darken"><i class="icon icon-plus text-small"/></span>
|
||||
<span>{{t 'projectsPage.new.form.members.addUser'}}</span>
|
||||
</button>
|
||||
{{/if}}
|
||||
|
||||
{{!-- TODO - 2.0 --}}
|
||||
<button class="btn bg-link icon-btn p-0" {{action "addMember" "Group"}} disabled="true">
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import Component from '@ember/component';
|
||||
import layout from './template';
|
||||
import { equal } from '@ember/object/computed';
|
||||
import { alias, equal } from '@ember/object/computed';
|
||||
import { get/* , set */ } from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { run } from '@ember/runloop';
|
||||
|
|
@ -12,6 +12,7 @@ export default Component.extend({
|
|||
canSave: equal('password', 'confirm'),
|
||||
overrideSave: null,
|
||||
globalStore: service(),
|
||||
user: null,
|
||||
didReceiveAttrs() {
|
||||
run.next(function() {
|
||||
$('.start')[0].focus();
|
||||
|
|
@ -22,18 +23,13 @@ export default Component.extend({
|
|||
if (typeof get(this, 'overrideSave') === 'function') {
|
||||
this.sendAction('overrideSave', get(this, 'password'));
|
||||
} else {
|
||||
get(this, 'globalStore').rawRequest({
|
||||
url: 'users/admin?action=changepassword', // TODO 2.0
|
||||
method: 'POST',
|
||||
data: {
|
||||
newPassword: get(this, 'password')
|
||||
}
|
||||
}).then((/* resp */) => {
|
||||
cb(true);
|
||||
this.sendAction('complete', true);
|
||||
}).catch((/* res */) => {
|
||||
this.sendAction('complete', false);
|
||||
});
|
||||
get(this, 'user').doAction('changepassword', {newPassword: get(this, 'password')})
|
||||
.then(( user ) => {
|
||||
cb(user);
|
||||
this.sendAction('complete', user);
|
||||
}).catch((/* res */) => {
|
||||
this.sendAction('complete', false);
|
||||
});
|
||||
}
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,12 +3,14 @@ import ModalBase from 'shared/mixins/modal-base';
|
|||
import layout from './template';
|
||||
import { get/* , set */ } from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { alias } from '@ember/object/computed';
|
||||
|
||||
export default Component.extend(ModalBase, {
|
||||
layout,
|
||||
classNames: ['medium-modal'],
|
||||
router: service(),
|
||||
showHelp: false,
|
||||
user: alias('modalOpts.user'),
|
||||
actions: {
|
||||
complete(success) {
|
||||
if (success) {
|
||||
|
|
|
|||
|
|
@ -6,4 +6,5 @@
|
|||
</div>
|
||||
{{input-edit-password
|
||||
complete="complete"
|
||||
user=user
|
||||
}}
|
||||
|
|
@ -34,10 +34,10 @@ export default Component.extend({
|
|||
}),
|
||||
|
||||
kind: computed('member.subjectKind', function () {
|
||||
if (!get(this, 'owner')) {
|
||||
return `projectsPage.new.form.members.${get(this,'member.subjectKind').toLowerCase()}`
|
||||
} else {
|
||||
if (get(this, 'owner')) {
|
||||
return `projectsPage.new.form.members.${get(this,'owner.type').toLowerCase()}`; // TODO translations
|
||||
} else {
|
||||
return `projectsPage.new.form.members.${get(this,'member.subjectKind').toLowerCase()}`
|
||||
}
|
||||
})
|
||||
});
|
||||
|
|
|
|||
|
|
@ -593,6 +593,7 @@ projectsPage:
|
|||
serviceaccount: Service Account
|
||||
labelText: Members
|
||||
addUser: Add User
|
||||
noAddUser: You are the only active registered user.
|
||||
addGroup: Add Group
|
||||
addServiceAccount: Add Service Account
|
||||
kind:
|
||||
|
|
|
|||
Loading…
Reference in New Issue