Test fixes

This commit is contained in:
Juan Ferrer 2020-09-21 16:09:34 +02:00
parent 2b05827be1
commit 3880e21ce3
51 changed files with 169 additions and 86 deletions

View File

@ -40,17 +40,9 @@ module.exports = Self => {
Self.getCurrentUserData = async function(ctx) { Self.getCurrentUserData = async function(ctx) {
let userId = ctx.req.accessToken.userId; let userId = ctx.req.accessToken.userId;
return await Self.findById(userId, {
let account = await Self.findById(userId, {
fields: ['id', 'name', 'nickname'] fields: ['id', 'name', 'nickname']
}); });
let worker = await Self.app.models.Worker.findOne({
fields: ['id'],
where: {userFk: userId}
});
return Object.assign(account, {workerId: worker.id});
}; };
/** /**

View File

@ -45,9 +45,6 @@
}, },
"updated": { "updated": {
"type": "date" "type": "date"
},
"sync": {
"type": "boolean"
} }
}, },
"relations": { "relations": {

View File

@ -1,53 +0,0 @@
ALTER TABLE `account`.`role`
MODIFY COLUMN `hasLogin` tinyint(3) unsigned DEFAULT 1 NOT NULL;
ALTER TABLE `account`.`roleInherit`
ADD UNIQUE( `role`, `inheritsFrom`);
ALTER TABLE `account`.`roleInherit`
DROP PRIMARY KEY;
ALTER TABLE `account`.`roleInherit`
ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (`id`);
ALTER TABLE `account`.`mailAlias`
ADD `description` VARCHAR(255) NULL AFTER `alias`;
ALTER TABLE `account`.`mailAliasAccount`
ADD UNIQUE( `mailAlias`, `account`);
ALTER TABLE `account`.`mailAliasAccount`
DROP PRIMARY KEY;
ALTER TABLE `account`.`mailAliasAccount`
ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (`id`);
ALTER TABLE account.ldapConfig
ADD groupDn varchar(255) NULL;
UPDATE account.ldapConfig SET groupDn = 'ou=groups,dc=verdnatura,dc=es';
DROP PROCEDURE IF EXISTS account.user_syncPassword;
USE account;
DELIMITER $$
CREATE TRIGGER role_beforeInsert
BEFORE INSERT ON `role` FOR EACH ROW
BEGIN
CALL role_checkName(NEW.`name`);
END$$
CREATE TRIGGER role_beforeUpdate
BEFORE UPDATE ON `role` FOR EACH ROW
BEGIN
IF !(NEW.`name` <=> OLD.`name`) THEN
CALL role_checkName (NEW.`name`);
END IF;
END$$
DELIMITER ;

View File

@ -0,0 +1,127 @@
ALTER TABLE `account`.`role`
MODIFY COLUMN `hasLogin` tinyint(3) unsigned DEFAULT 1 NOT NULL;
ALTER TABLE `account`.`roleInherit`
ADD UNIQUE( `role`, `inheritsFrom`);
ALTER TABLE `account`.`roleInherit`
DROP PRIMARY KEY;
ALTER TABLE `account`.`roleInherit`
ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (`id`);
ALTER TABLE `account`.`mailAlias`
ADD `description` VARCHAR(255) NULL AFTER `alias`;
ALTER TABLE `account`.`mailAliasAccount`
ADD UNIQUE( `mailAlias`, `account`);
ALTER TABLE `account`.`mailAliasAccount`
DROP PRIMARY KEY;
ALTER TABLE `account`.`mailAliasAccount`
ADD `id` INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (`id`);
ALTER TABLE account.ldapConfig
ADD groupDn varchar(255) NULL;
UPDATE account.ldapConfig SET groupDn = 'ou=groups,dc=verdnatura,dc=es';
DROP PROCEDURE IF EXISTS account.user_syncPassword;
ALTER TABLE account.`user`
MODIFY COLUMN sync tinyint(4) DEFAULT 0 NOT NULL COMMENT 'Deprecated';
CREATE TABLE account.userSync (
name varchar(30) NOT NULL,
CONSTRAINT userSync_PK PRIMARY KEY (name)
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8
COLLATE=utf8_general_ci;
USE account;
DELIMITER $$
DROP TRIGGER IF EXISTS account.user_beforeUpdate$$
CREATE DEFINER=`root`@`%` TRIGGER `user_beforeUpdate`
BEFORE UPDATE ON `user` FOR EACH ROW
BEGIN
IF !(NEW.`name` <=> OLD.`name`) THEN
CALL user_checkName (NEW.`name`);
END IF;
IF !(NEW.`password` <=> OLD.`password`) THEN
SET NEW.bcryptPassword = NULL;
SET NEW.lastPassChange = NOW();
END IF;
END$$
DROP TRIGGER IF EXISTS account.user_afterUpdate$$
CREATE DEFINER=`root`@`%` TRIGGER `user_afterUpdate`
AFTER UPDATE ON `user` FOR EACH ROW
BEGIN
INSERT IGNORE INTO userSync SET `name` = NEW.`name`;
IF !(OLD.`name` <=> NEW.`name`) THEN
INSERT IGNORE INTO userSync SET `name` = OLD.`name`;
END IF;
IF !(NEW.`role` <=> OLD.`role`)
THEN
INSERT INTO vn.mail SET
`sender` = 'jgallego@verdnatura.es',
`replyTo` = 'jgallego@verdnatura.es',
`subject` = 'Rol modificado',
`body` = CONCAT(myUserGetName(), ' ha modificado el rol del usuario ',
NEW.`name`, ' de ', OLD.role, ' a ', NEW.role);
END IF;
END$$
CREATE DEFINER=`root`@`%` TRIGGER `user_afterInsert`
AFTER INSERT ON `user` FOR EACH ROW
BEGIN
INSERT IGNORE INTO userSync SET `name` = NEW.`name`;
END$$
CREATE DEFINER=`root`@`%` TRIGGER `user_afterDelete`
AFTER DELETE ON `user` FOR EACH ROW
BEGIN
INSERT IGNORE INTO userSync SET `name` = OLD.`name`;
END$$
DROP TRIGGER IF EXISTS account.account_afterInsert$$
CREATE DEFINER=`root`@`%` TRIGGER `account_afterInsert`
AFTER INSERT ON `account` FOR EACH ROW
BEGIN
INSERT IGNORE INTO userSync (`name`)
SELECT `name` FROM `user` WHERE id = NEW.id;
END$$
DROP TRIGGER IF EXISTS account.account_afterDelete$$
CREATE DEFINER=`root`@`%` TRIGGER `account_afterDelete`
AFTER DELETE ON `account` FOR EACH ROW
BEGIN
INSERT IGNORE INTO userSync (`name`)
SELECT `name` FROM `user` WHERE id = OLD.id;
END$$
CREATE TRIGGER role_beforeInsert
BEFORE INSERT ON `role` FOR EACH ROW
BEGIN
CALL role_checkName(NEW.`name`);
END$$
CREATE TRIGGER role_beforeUpdate
BEFORE UPDATE ON `role` FOR EACH ROW
BEGIN
IF !(NEW.`name` <=> OLD.`name`) THEN
CALL role_checkName (NEW.`name`);
END IF;
END$$
DELIMITER ;

View File

@ -15,7 +15,7 @@ export class Layout extends Component {
getUserData() { getUserData() {
this.$http.get('Accounts/getCurrentUserData').then(json => { this.$http.get('Accounts/getCurrentUserData').then(json => {
this.$.$root.user = json.data; this.$.$root.user = json.data;
window.localStorage.currentUserWorkerId = json.data.workerId; window.localStorage.currentUserWorkerId = json.data.id;
}); });
} }
} }

View File

@ -36,7 +36,7 @@
</vn-icon-button> </vn-icon-button>
</div> </div>
<a <a
ui-sref="worker.card.summary({id: $root.user.workerId})" ui-sref="worker.card.summary({id: $root.user.id})"
class="vn-button colored" class="vn-button colored"
translate> translate>
My account My account

View File

@ -28,11 +28,12 @@ module.exports = Self => {
let $ = Self.app.models; let $ = Self.app.models;
let user = await $.Account.findOne({ let user = await $.Account.findOne({
fields: ['id', 'sync'], fields: ['id'],
where: {name: userName} where: {name: userName}
}); });
let isSync = !await $.UserSync.exists(userName);
if (user && user.sync) return; if (user && isSync) return;
let accountConfig; let accountConfig;
let mailConfig; let mailConfig;
@ -84,10 +85,10 @@ module.exports = Self => {
if (user) { if (user) {
let bcryptPassword = $.User.hashPassword(password); let bcryptPassword = $.User.hashPassword(password);
await $.Account.upsertWithWhere({id: user.id}, {bcryptPassword});
await $.user.destroyById(user.id); await $.Account.upsertWithWhere({id: user.id},
if (hasAccount) { {bcryptPassword}
);
await $.user.upsert({ await $.user.upsert({
id: user.id, id: user.id,
username: userName, username: userName,
@ -97,7 +98,6 @@ module.exports = Self => {
updated: user.updated updated: user.updated
}); });
} }
}
// SIP // SIP
@ -262,7 +262,6 @@ module.exports = Self => {
// Mark as synchronized // Mark as synchronized
// if (user) await $.UserSync.destroyById(userName);
// await $.Account.upsertWithWhere({id: user.id}, {sync: true});
}; };
}; };

View File

@ -31,5 +31,8 @@
}, },
"UserPassword": { "UserPassword": {
"dataSource": "vn" "dataSource": "vn"
},
"UserSync": {
"dataSource": "vn"
} }
} }

View File

@ -0,0 +1,15 @@
{
"name": "UserSync",
"base": "VnModel",
"options": {
"mysql": {
"table": "account.userSync"
}
},
"properties": {
"name": {
"type": "string",
"id": true
}
}
}

View File

@ -1,6 +1,7 @@
const app = require('vn-loopback/server/server'); const app = require('vn-loopback/server/server');
describe('client sendSms()', () => { // Issue #2471
xdescribe('client sendSms()', () => {
let createdLog; let createdLog;
afterAll(async done => { afterAll(async done => {

View File

@ -1,7 +1,8 @@
const app = require('vn-loopback/server/server'); const app = require('vn-loopback/server/server');
const soap = require('soap'); const soap = require('soap');
describe('sms send()', () => { // Issue #2471
xdescribe('sms send()', () => {
it('should return the expected message and status code', async() => { it('should return the expected message and status code', async() => {
const code = 200; const code = 200;
const smsConfig = await app.models.SmsConfig.findOne(); const smsConfig = await app.models.SmsConfig.findOne();

View File

@ -1,6 +1,7 @@
const app = require('vn-loopback/server/server'); const app = require('vn-loopback/server/server');
describe('ticket sendSms()', () => { // Issue #2471
xdescribe('ticket sendSms()', () => {
let logId; let logId;
afterAll(async done => { afterAll(async done => {