Skip to content

Commit 35fd852

Browse files
authored
Merge pull request #6647 from Turbo87/token-expiry-in-list
Show API Token expiry in token list
2 parents ea38599 + b541da7 commit 35fd852

File tree

3 files changed

+11
-0
lines changed

3 files changed

+11
-0
lines changed

app/components/settings/api-tokens.hbs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@
115115
<div title={{token.created_at}} local-class="created-at" data-test-created-at>
116116
Created {{date-format-distance-to-now token.created_at addSuffix=true}}
117117
</div>
118+
119+
{{#if token.expired_at}}
120+
<div title={{token.expired_at}} local-class="expired-at" data-test-expired-at>
121+
Expires {{date-format-distance-to-now token.expired_at addSuffix=true}}
122+
</div>
123+
{{/if}}
118124
</div>
119125

120126
{{#if token.token}}

app/models/api-token.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ export default class ApiToken extends Model {
99
@attr crate_scopes;
1010
/** @type string[] | null */
1111
@attr endpoint_scopes;
12+
/** @type string | null */
13+
@attr('date') expired_at;
1214
}

tests/acceptance/api-token-test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ module('Acceptance | api-tokens', function (hooks) {
3131
name: 'BAR',
3232
createdAt: '2017-11-19T17:59:22',
3333
lastUsedAt: null,
34+
expiredAt: '2017-12-19T17:59:22',
3435
});
3536

3637
context.authenticateAs(user);
@@ -47,6 +48,7 @@ module('Acceptance | api-tokens', function (hooks) {
4748
assert.dom('[data-test-name]', row1).hasText('BAR');
4849
assert.dom('[data-test-created-at]', row1).hasText('Created about 18 hours ago');
4950
assert.dom('[data-test-last-used-at]', row1).hasText('Never used');
51+
assert.dom('[data-test-expired-at]', row1).hasText('Expires in 29 days');
5052
assert.dom('[data-test-save-token-button]', row1).doesNotExist();
5153
assert.dom('[data-test-revoke-token-button]', row1).exists();
5254
assert.dom('[data-test-saving-spinner]', row1).doesNotExist();
@@ -56,6 +58,7 @@ module('Acceptance | api-tokens', function (hooks) {
5658
assert.dom('[data-test-name]', row2).hasText('foo');
5759
assert.dom('[data-test-created-at]', row2).hasText('Created 4 months ago');
5860
assert.dom('[data-test-last-used-at]', row2).hasText('Last used 18 days ago');
61+
assert.dom('[data-test-expired-at]', row2).doesNotExist();
5962
assert.dom('[data-test-save-token-button]', row2).doesNotExist();
6063
assert.dom('[data-test-revoke-token-button]', row2).exists();
6164
assert.dom('[data-test-saving-spinner]', row2).doesNotExist();

0 commit comments

Comments
 (0)