refs #5554 refactor: eliminado vnTokenCreated y añadido a vnToken.created
gitea/salix/pipeline/head This commit looks good
Details
gitea/salix/pipeline/head This commit looks good
Details
This commit is contained in:
parent
7cf85eeef8
commit
3fdb546d86
|
@ -1,6 +1,8 @@
|
|||
const UserError = require('vn-loopback/util/user-error');
|
||||
|
||||
module.exports = Self => {
|
||||
Self.remoteMethodCtx('renewToken', {
|
||||
description: 'Send email to the user',
|
||||
description: 'Checks if the token has more than renewPeriod seconds to live and if so, renews it',
|
||||
accepts: [],
|
||||
returns: {
|
||||
type: 'Object',
|
||||
|
@ -22,16 +24,10 @@ module.exports = Self => {
|
|||
const differenceMilliseconds = now - created;
|
||||
const differenceSeconds = Math.floor(differenceMilliseconds / 1000);
|
||||
|
||||
const accessTokenConfig = await models.AccessTokenConfig.findOne();
|
||||
if (differenceSeconds <= accessTokenConfig.renewPeriod) {
|
||||
const response = {
|
||||
statusCode: 200,
|
||||
data: {
|
||||
message: 'Token is active',
|
||||
}
|
||||
};
|
||||
return response;
|
||||
}
|
||||
const accessTokenConfig = await models.AccessTokenConfig.findOne({fields: ['renewPeriod']});
|
||||
|
||||
if (differenceSeconds <= accessTokenConfig.renewPeriod)
|
||||
throw new UserError(`The renew period has not been exceeded`);
|
||||
|
||||
await Self.logout(tokenId);
|
||||
const user = await Self.findById(userId);
|
||||
|
|
|
@ -7,7 +7,7 @@ import UserError from 'core/lib/user-error';
|
|||
* @property {Boolean} loggedIn Whether the user is currently logged
|
||||
*/
|
||||
export default class Auth {
|
||||
constructor($http, $q, $state, $transitions, $window, vnToken, vnTokenCreated, vnModules, aclService) {
|
||||
constructor($http, $q, $state, $transitions, $window, vnToken, vnModules, aclService) {
|
||||
Object.assign(this, {
|
||||
$http,
|
||||
$q,
|
||||
|
@ -15,7 +15,6 @@ export default class Auth {
|
|||
$transitions,
|
||||
$window,
|
||||
vnToken,
|
||||
vnTokenCreated,
|
||||
vnModules,
|
||||
aclService,
|
||||
loggedIn: false
|
||||
|
@ -65,8 +64,7 @@ export default class Auth {
|
|||
}
|
||||
|
||||
onLoginOk(json, remember) {
|
||||
this.vnToken.set(json.data.token, remember);
|
||||
this.vnTokenCreated.set(json.data.created, remember);
|
||||
this.vnToken.set(json.data.token, json.data.created, remember);
|
||||
|
||||
return this.loadAcls().then(() => {
|
||||
let continueHash = this.$state.params.continue;
|
||||
|
@ -103,6 +101,6 @@ export default class Auth {
|
|||
});
|
||||
}
|
||||
}
|
||||
Auth.$inject = ['$http', '$q', '$state', '$transitions', '$window', 'vnToken', 'vnTokenCreated', 'vnModules', 'aclService'];
|
||||
Auth.$inject = ['$http', '$q', '$state', '$transitions', '$window', 'vnToken', 'vnModules', 'aclService'];
|
||||
|
||||
ngModule.service('vnAuth', Auth);
|
||||
|
|
|
@ -11,5 +11,4 @@ import './report';
|
|||
import './email';
|
||||
import './file';
|
||||
import './date';
|
||||
import './token-created';
|
||||
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
import ngModule from '../module';
|
||||
|
||||
/**
|
||||
* Saves and loads the created for the current logged in user.
|
||||
*
|
||||
* @property {String} created The current login created or %null
|
||||
*/
|
||||
export default class created {
|
||||
constructor() {
|
||||
try {
|
||||
this.created = sessionStorage.getItem('vnTokenCreated');
|
||||
if (!this.created)
|
||||
this.created = localStorage.getItem('vnTokenCreated');
|
||||
} catch (e) {}
|
||||
}
|
||||
set(value, remember) {
|
||||
this.unset();
|
||||
try {
|
||||
if (remember)
|
||||
localStorage.setItem('vnTokenCreated', value);
|
||||
else
|
||||
sessionStorage.setItem('vnTokenCreated', value);
|
||||
} catch (e) {}
|
||||
|
||||
this.created = value;
|
||||
}
|
||||
unset() {
|
||||
localStorage.removeItem('vnTokenCreated');
|
||||
sessionStorage.removeItem('vnTokenCreated');
|
||||
this.created = null;
|
||||
}
|
||||
}
|
||||
|
||||
ngModule.service('vnTokenCreated', created);
|
|
@ -9,25 +9,33 @@ export default class Token {
|
|||
constructor() {
|
||||
try {
|
||||
this.token = sessionStorage.getItem('vnToken');
|
||||
if (!this.token)
|
||||
this.created = sessionStorage.getItem('vnTokenCreated');
|
||||
if (!this.token) {
|
||||
this.token = localStorage.getItem('vnToken');
|
||||
this.created = localStorage.getItem('vnTokenCreated');
|
||||
}
|
||||
} catch (e) {}
|
||||
}
|
||||
set(value, remember) {
|
||||
set(token, created, remember) {
|
||||
this.unset();
|
||||
try {
|
||||
if (remember)
|
||||
localStorage.setItem('vnToken', value);
|
||||
else
|
||||
sessionStorage.setItem('vnToken', value);
|
||||
if (remember) {
|
||||
localStorage.setItem('vnToken', token);
|
||||
localStorage.setItem('vnTokenCreated', created);
|
||||
} else {
|
||||
sessionStorage.setItem('vnToken', token);
|
||||
sessionStorage.setItem('vnTokenCreated', created);
|
||||
}
|
||||
} catch (e) {}
|
||||
|
||||
this.token = value;
|
||||
this.token = token;
|
||||
this.created = created;
|
||||
}
|
||||
unset() {
|
||||
localStorage.removeItem('vnToken');
|
||||
sessionStorage.removeItem('vnToken');
|
||||
this.token = null;
|
||||
this.created = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,13 +3,9 @@ import Component from 'core/lib/component';
|
|||
import './style.scss';
|
||||
|
||||
export class Layout extends Component {
|
||||
constructor($element, $, vnModules, vnToken, vnTokenCreated) {
|
||||
constructor($element, $, vnModules, vnToken) {
|
||||
super($element, $);
|
||||
this.modules = vnModules.get();
|
||||
Object.assign(this, {
|
||||
vnToken,
|
||||
vnTokenCreated
|
||||
});
|
||||
}
|
||||
|
||||
$onInit() {
|
||||
|
@ -50,7 +46,7 @@ export class Layout extends Component {
|
|||
|
||||
checkTokenValidity() {
|
||||
const now = new Date();
|
||||
const differenceMilliseconds = now - new Date(this.vnTokenCreated.created);
|
||||
const differenceMilliseconds = now - new Date(this.vnToken.created);
|
||||
const differenceSeconds = Math.floor(differenceMilliseconds / 1000);
|
||||
|
||||
if (differenceSeconds > window.localStorage.renewPeriod) {
|
||||
|
@ -60,8 +56,7 @@ export class Layout extends Component {
|
|||
let remember = true;
|
||||
if (window.sessionStorage.vnToken) remember = false;
|
||||
|
||||
this.vnToken.set(json.data.token, remember);
|
||||
this.vnTokenCreated.set(json.data.created, remember);
|
||||
this.vnToken.set(json.data.token, json.data.created, remember);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -71,7 +66,7 @@ export class Layout extends Component {
|
|||
clearInterval(this.inservalId);
|
||||
}
|
||||
}
|
||||
Layout.$inject = ['$element', '$scope', 'vnModules', 'vnToken', 'vnTokenCreated'];
|
||||
Layout.$inject = ['$element', '$scope', 'vnModules', 'vnToken'];
|
||||
|
||||
ngModule.vnComponent('vnLayout', {
|
||||
template: require('./index.html'),
|
||||
|
|
|
@ -61,28 +61,28 @@ describe('Component vnLayout', () => {
|
|||
describe('checkTokenValidity()', () => {
|
||||
it(`should not call renewToken and not set vnToken in the controller`, () => {
|
||||
localStorage.setItem('renewPeriod', 100);
|
||||
controller.vnTokenCreated.created = new Date();
|
||||
controller.vnToken.created = new Date();
|
||||
|
||||
controller.checkTokenValidity();
|
||||
|
||||
expect(controller.vnToken.token).toBeNull();
|
||||
});
|
||||
|
||||
it(`should call renewToken and set vnToken and vnTokenCreated properties in the controller`, () => {
|
||||
it(`should call renewToken and set vnToken properties in the controller`, () => {
|
||||
const response = {
|
||||
token: 999,
|
||||
created: new Date()
|
||||
};
|
||||
localStorage.setItem('renewPeriod', 100);
|
||||
const oneHourBefore = new Date(Date.now() - (60 * 60 * 1000));
|
||||
controller.vnTokenCreated.created = oneHourBefore;
|
||||
controller.vnToken.created = oneHourBefore;
|
||||
|
||||
$httpBackend.expect('POST', `VnUsers/renewToken`).respond(response);
|
||||
controller.checkTokenValidity();
|
||||
$httpBackend.flush();
|
||||
|
||||
expect(controller.vnToken.token).toBe(999);
|
||||
expect(controller.vnTokenCreated.created).toEqual(response.created);
|
||||
expect(controller.vnToken.created).toEqual(response.created);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -293,5 +293,6 @@
|
|||
"comercialName": "Comercial",
|
||||
"Invalid NIF for VIES": "Invalid NIF for VIES",
|
||||
"Ticket does not exist": "Este ticket no existe",
|
||||
"Ticket is already signed": "Este ticket ya ha sido firmado"
|
||||
"Ticket is already signed": "Este ticket ya ha sido firmado",
|
||||
"The renew period has not been exceeded": "El periodo de renovación no ha sido superado"
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue