6d67e90763
This adds UI support for receiving the one-time token passed via query parameter, as in #10134 and related PRs, and exchanging it for its corresponding secret ID. When this works, it’s mostly invisible, with a brief flash of the OTT onscreen. The authentication failure message now suggests the -authenticate flag. When OTT exchange fails, it shows a whole-page error. This includes a known UX shortcoming in that the OTT will not disappear from the URL when an identifier is specified on the command line, like nomad ui -authenticate jobname. The goal is to address that shortcoming in a forthcoming pull request.
32 lines
797 B
JavaScript
32 lines
797 B
JavaScript
import { Factory } from 'ember-cli-mirage';
|
|
import faker from 'nomad-ui/mirage/faker';
|
|
|
|
export default Factory.extend({
|
|
id: () => faker.random.uuid(),
|
|
accessorId() {
|
|
return this.id;
|
|
},
|
|
secretId: () => faker.random.uuid(),
|
|
name: () => faker.name.findName(),
|
|
global: () => faker.random.boolean(),
|
|
type: i => (i === 0 ? 'management' : 'client'),
|
|
|
|
oneTimeSecret: () => faker.random.uuid(),
|
|
|
|
afterCreate(token, server) {
|
|
const policyIds = Array(faker.random.number({ min: 1, max: 5 }))
|
|
.fill(0)
|
|
.map(() => faker.hacker.verb())
|
|
.uniq();
|
|
|
|
policyIds.forEach(policy => {
|
|
const dbPolicy = server.db.policies.find(policy);
|
|
if (!dbPolicy) {
|
|
server.create('policy', { id: policy });
|
|
}
|
|
});
|
|
|
|
token.update({ policyIds });
|
|
},
|
|
});
|