Merge pull request #1520 from westlywright/kube

Kube
This commit is contained in:
Vincent Fiduccia 2018-01-02 16:02:58 -07:00 committed by GitHub
commit 84f179844f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 81 additions and 61 deletions

View File

@ -45,6 +45,7 @@ const App = Application.extend({
'session',
'settings',
'store',
'tooltip',
'user-language',
'user-theme',
],

View File

@ -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'))
});
},
});

View File

@ -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'))
});
},
});

View File

@ -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')});
},
},
});

View File

@ -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

View File

@ -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() {

View File

@ -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) => {

View File

@ -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',
],

View File

@ -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) => {

View File

@ -6,6 +6,7 @@
</div>
{{input-edit-password
complete="complete"
user=user
}}
{{else}}
<h1>

View File

@ -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 {

View File

@ -6,6 +6,7 @@ import { inject as service } from '@ember/service';
export default Component.extend({
layout,
globalStore: service(),
access: service(),
editing: false,
memberArray: null,

View File

@ -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">

View File

@ -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);
});
}
},
}

View File

@ -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) {

View File

@ -6,4 +6,5 @@
</div>
{{input-edit-password
complete="complete"
user=user
}}

View File

@ -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()}`
}
})
});

View File

@ -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: