mirror of https://github.com/status-im/consul.git
ui: Make sure that the namespace is passed when changing a token via [Use] (#6973)
* Pass the namespace parameter through to the repo when using a token * Refresh the namespace menu when somebody [Use]s a token
This commit is contained in:
parent
18bafaec35
commit
99fae9d65a
|
@ -9,13 +9,18 @@ export default Mixin.create(WithBlockingActions, {
|
||||||
use: function(item) {
|
use: function(item) {
|
||||||
return this.feedback.execute(() => {
|
return this.feedback.execute(() => {
|
||||||
return this.repo
|
return this.repo
|
||||||
.findBySlug(get(item, 'AccessorID'), this.modelFor('dc').dc.Name)
|
.findBySlug(
|
||||||
|
get(item, 'AccessorID'),
|
||||||
|
this.modelFor('dc').dc.Name,
|
||||||
|
this.modelFor('nspace').nspace.substr(1)
|
||||||
|
)
|
||||||
.then(item => {
|
.then(item => {
|
||||||
return this.settings
|
return this.settings
|
||||||
.persist({
|
.persist({
|
||||||
token: {
|
token: {
|
||||||
AccessorID: get(item, 'AccessorID'),
|
AccessorID: get(item, 'AccessorID'),
|
||||||
SecretID: get(item, 'SecretID'),
|
SecretID: get(item, 'SecretID'),
|
||||||
|
Namespace: get(item, 'Namespace'),
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import Route from '@ember/routing/route';
|
import Route from '@ember/routing/route';
|
||||||
import { inject as service } from '@ember/service';
|
import { inject as service } from '@ember/service';
|
||||||
import { hash } from 'rsvp';
|
import { hash, Promise } from 'rsvp';
|
||||||
import { get } from '@ember/object';
|
import { get } from '@ember/object';
|
||||||
|
|
||||||
// TODO: We should potentially move all these nspace related things
|
// TODO: We should potentially move all these nspace related things
|
||||||
|
@ -74,13 +74,28 @@ export default Route.extend({
|
||||||
// https://deprecations.emberjs.com/v3.x/#toc_deprecate-router-events
|
// https://deprecations.emberjs.com/v3.x/#toc_deprecate-router-events
|
||||||
willTransition: function(transition) {
|
willTransition: function(transition) {
|
||||||
this._super(...arguments);
|
this._super(...arguments);
|
||||||
if (typeof transition !== 'undefined' && transition.from.name.endsWith('nspaces.create')) {
|
if (
|
||||||
|
typeof transition !== 'undefined' &&
|
||||||
|
(transition.from.name.endsWith('nspaces.create') ||
|
||||||
|
transition.from.name.startsWith('nspace.dc.acls.tokens'))
|
||||||
|
) {
|
||||||
// Only when we create, reload the nspaces in the main menu to update them
|
// Only when we create, reload the nspaces in the main menu to update them
|
||||||
// as we don't block for those
|
// as we don't block for those
|
||||||
this.nspacesRepo.findAll().then(items => {
|
// And also when we [Use] a token reload the nspaces that you are able to see,
|
||||||
|
// including your permissions for being able to manage namespaces
|
||||||
|
// Potentially we should just do this on every single transition
|
||||||
|
// but then we would need to check to see if nspaces are enabled
|
||||||
|
Promise.all([
|
||||||
|
this.nspacesRepo.findAll(),
|
||||||
|
this.nspacesRepo.authorize(
|
||||||
|
get(this.controller, 'dc.Name'),
|
||||||
|
get(this.controller, 'nspace.Name')
|
||||||
|
),
|
||||||
|
]).then(([nspaces, permissions]) => {
|
||||||
if (typeof this.controller !== 'undefined') {
|
if (typeof this.controller !== 'undefined') {
|
||||||
this.controller.setProperties({
|
this.controller.setProperties({
|
||||||
nspaces: items,
|
nspaces: nspaces,
|
||||||
|
permissions: permissions,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -24,7 +24,7 @@ Feature: dc / acls / tokens / own no delete: The your current token has no delet
|
||||||
And "[data-notification]" has the "success" class
|
And "[data-notification]" has the "success" class
|
||||||
Then I have settings like yaml
|
Then I have settings like yaml
|
||||||
---
|
---
|
||||||
consul:token: "{\"AccessorID\":\"token\",\"SecretID\":\"ee52203d-989f-4f7a-ab5a-2bef004164ca\"}"
|
consul:token: "{\"AccessorID\":\"token\",\"SecretID\":\"ee52203d-989f-4f7a-ab5a-2bef004164ca\",\"Namespace\":\"default\"}"
|
||||||
---
|
---
|
||||||
And I click actions on the tokens
|
And I click actions on the tokens
|
||||||
Then I don't see delete on the tokens
|
Then I don't see delete on the tokens
|
||||||
|
|
|
@ -23,7 +23,7 @@ Feature: dc / acls / tokens / use: Using an ACL token
|
||||||
And "[data-notification]" has the "success" class
|
And "[data-notification]" has the "success" class
|
||||||
Then I have settings like yaml
|
Then I have settings like yaml
|
||||||
---
|
---
|
||||||
consul:token: "{\"AccessorID\":\"token\",\"SecretID\":\"ee52203d-989f-4f7a-ab5a-2bef004164ca\"}"
|
consul:token: "{\"AccessorID\":\"token\",\"SecretID\":\"ee52203d-989f-4f7a-ab5a-2bef004164ca\",\"Namespace\":\"default\"}"
|
||||||
---
|
---
|
||||||
Scenario: Using an ACL token from the detail page
|
Scenario: Using an ACL token from the detail page
|
||||||
When I visit the token page for yaml
|
When I visit the token page for yaml
|
||||||
|
@ -41,5 +41,5 @@ Feature: dc / acls / tokens / use: Using an ACL token
|
||||||
And "[data-notification]" has the "success" class
|
And "[data-notification]" has the "success" class
|
||||||
Then I have settings like yaml
|
Then I have settings like yaml
|
||||||
---
|
---
|
||||||
consul:token: "{\"AccessorID\":\"token\",\"SecretID\":\"ee52203d-989f-4f7a-ab5a-2bef004164ca\"}"
|
consul:token: "{\"AccessorID\":\"token\",\"SecretID\":\"ee52203d-989f-4f7a-ab5a-2bef004164ca\",\"Namespace\":\"default\"}"
|
||||||
---
|
---
|
||||||
|
|
Loading…
Reference in New Issue