refactor back download
This commit is contained in:
parent
44d3cf748b
commit
75ffa108fb
|
@ -50,25 +50,27 @@ module.exports = Self => {
|
||||||
});
|
});
|
||||||
|
|
||||||
Self.download = async function(collection, size, id) {
|
Self.download = async function(collection, size, id) {
|
||||||
|
const models = Self.app.models;
|
||||||
const filter = {
|
const filter = {
|
||||||
where: {
|
where: {
|
||||||
collectionFk: collection,
|
name: collection},
|
||||||
name: id},
|
|
||||||
include: {
|
include: {
|
||||||
relation: 'collection',
|
relation: 'readRole'
|
||||||
scope: {
|
|
||||||
fields: ['name', 'readRoleFk'],
|
|
||||||
include: {
|
|
||||||
relation: 'readRole'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const image = await Self.app.models.Image.findOne(filter);
|
const imageCollection = await models.ImageCollection.findOne(filter);
|
||||||
|
const entity = await models[imageCollection.model].findById(id, {
|
||||||
|
fields: ['id', imageCollection.property]
|
||||||
|
});
|
||||||
|
const image = await models.Image.findOne({where: {
|
||||||
|
collectionFk: collection,
|
||||||
|
name: entity[imageCollection.property]}
|
||||||
|
});
|
||||||
|
|
||||||
if (!image) return false;
|
if (!image) return false;
|
||||||
|
|
||||||
const imageRole = image.collection().readRole().name;
|
const imageRole = imageCollection.readRole().name;
|
||||||
const hasRole = await Self.app.models.Account.hasRole(id, imageRole);
|
const hasRole = await models.Account.hasRole(id, imageRole);
|
||||||
if (!hasRole)
|
if (!hasRole)
|
||||||
throw new UserError(`You don't have enough privileges`);
|
throw new UserError(`You don't have enough privileges`);
|
||||||
|
|
||||||
|
@ -76,15 +78,15 @@ module.exports = Self => {
|
||||||
let env = process.env.NODE_ENV;
|
let env = process.env.NODE_ENV;
|
||||||
if (env && env != 'development') {
|
if (env && env != 'development') {
|
||||||
file = {
|
file = {
|
||||||
path: `/var/lib/salix/image/${collection}/${size}/${id}.png`,
|
path: `/var/lib/salix/image/${collection}/${size}/${image.name}.png`,
|
||||||
contentType: 'image/png',
|
contentType: 'image/png',
|
||||||
name: `${id}.png`
|
name: `${image.name}.png`
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
file = {
|
file = {
|
||||||
path: `${process.cwd()}/storage/image/${collection}/${size}/${id}.png`,
|
path: `${process.cwd()}/storage/image/${collection}/${size}/${image.name}.png`,
|
||||||
contentType: 'image/png',
|
contentType: 'image/png',
|
||||||
name: `${id}.png`
|
name: `${image.name}.png`
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
await fs.access(file.path);
|
await fs.access(file.path);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
const app = require('vn-loopback/server/server');
|
const app = require('vn-loopback/server/server');
|
||||||
|
|
||||||
describe('image download()', () => {
|
fdescribe('image download()', () => {
|
||||||
const collection = 'user';
|
const collection = 'user';
|
||||||
const size = '160x160';
|
const size = '160x160';
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ describe('image download()', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it(`should return false if the user don't have image`, async() => {
|
it(`should return false if the user don't have image`, async() => {
|
||||||
const userId = 8;
|
const userId = 110;
|
||||||
const image = await app.models.Image.download(collection, size, userId);
|
const image = await app.models.Image.download(collection, size, userId);
|
||||||
|
|
||||||
expect(image).toBeFalse();
|
expect(image).toBeFalse();
|
||||||
|
|
|
@ -45,6 +45,9 @@
|
||||||
},
|
},
|
||||||
"updated": {
|
"updated": {
|
||||||
"type": "date"
|
"type": "date"
|
||||||
|
},
|
||||||
|
"image": {
|
||||||
|
"type": "String"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"relations": {
|
"relations": {
|
||||||
|
|
|
@ -2,4 +2,4 @@
|
||||||
ALTER TABLE `hedera`.`imageCollection`
|
ALTER TABLE `hedera`.`imageCollection`
|
||||||
ADD COLUMN `readRoleFk` VARCHAR(45) NULL DEFAULT NULL AFTER `column`;
|
ADD COLUMN `readRoleFk` VARCHAR(45) NULL DEFAULT NULL AFTER `column`;
|
||||||
|
|
||||||
update `hedera`.`imageCollection` set `readRoleFk` = 1 where id = 6;
|
update `hedera`.`imageCollection` set `readRoleFk` = 1;
|
|
@ -0,0 +1,2 @@
|
||||||
|
ALTER TABLE `account`.`user`
|
||||||
|
ADD COLUMN `image` VARCHAR(255) NULL AFTER `password`;
|
|
@ -29,8 +29,8 @@ INSERT INTO `vn`.`packagingConfig`(`upperGap`)
|
||||||
UPDATE `account`.`role` SET id = 100 WHERE id = 0;
|
UPDATE `account`.`role` SET id = 100 WHERE id = 0;
|
||||||
CALL `account`.`role_sync`;
|
CALL `account`.`role_sync`;
|
||||||
|
|
||||||
INSERT INTO `account`.`user`(`id`,`name`, `nickname`, `password`,`role`,`active`,`email`, `lang`)
|
INSERT INTO `account`.`user`(`id`,`name`, `nickname`, `password`,`role`,`active`,`email`, `lang`, `image`)
|
||||||
SELECT id, name, CONCAT(name, 'Nick'),MD5('nightmare'), id, 1, CONCAT(name, '@mydomain.com'), 'en'
|
SELECT id, name, CONCAT(name, 'Nick'),MD5('nightmare'), id, 1, CONCAT(name, '@mydomain.com'), 'en', 'e7723f0b24ff05b32ed09d95196f2f29'
|
||||||
FROM `account`.`role` WHERE id <> 20
|
FROM `account`.`role` WHERE id <> 20
|
||||||
ORDER BY id;
|
ORDER BY id;
|
||||||
|
|
||||||
|
@ -51,20 +51,20 @@ INSERT INTO `hedera`.`tpvConfig`(`id`, `currency`, `terminal`, `transactionType`
|
||||||
VALUES
|
VALUES
|
||||||
(1, 978, 1, 0, 2000, 9, 0);
|
(1, 978, 1, 0, 2000, 9, 0);
|
||||||
|
|
||||||
INSERT INTO `account`.`user`(`id`,`name`,`nickname`, `password`,`role`,`active`,`email`,`lang`)
|
INSERT INTO `account`.`user`(`id`,`name`,`nickname`, `password`,`role`,`active`,`email`,`lang`, `image`)
|
||||||
VALUES
|
VALUES
|
||||||
(101, 'BruceWayne', 'Bruce Wayne', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'BruceWayne@mydomain.com', 'es'),
|
(101, 'BruceWayne', 'Bruce Wayne', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'BruceWayne@mydomain.com', 'es', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(102, 'PetterParker', 'Petter Parker', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'PetterParker@mydomain.com', 'en'),
|
(102, 'PetterParker', 'Petter Parker', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'PetterParker@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(103, 'ClarkKent', 'Clark Kent', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'ClarkKent@mydomain.com', 'fr'),
|
(103, 'ClarkKent', 'Clark Kent', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'ClarkKent@mydomain.com', 'fr', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(104, 'TonyStark', 'Tony Stark', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'TonyStark@mydomain.com', 'es'),
|
(104, 'TonyStark', 'Tony Stark', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'TonyStark@mydomain.com', 'es', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(105, 'MaxEisenhardt', 'Max Eisenhardt', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'MaxEisenhardt@mydomain.com', 'pt'),
|
(105, 'MaxEisenhardt', 'Max Eisenhardt', 'ac754a330530832ba1bf7687f577da91', 2, 1, 'MaxEisenhardt@mydomain.com', 'pt', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(106, 'DavidCharlesHaller', 'David Charles Haller', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'DavidCharlesHaller@mydomain.com', 'en'),
|
(106, 'DavidCharlesHaller', 'David Charles Haller', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'DavidCharlesHaller@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(107, 'HankPym', 'Hank Pym', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'HankPym@mydomain.com', 'en'),
|
(107, 'HankPym', 'Hank Pym', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'HankPym@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(108, 'CharlesXavier', 'Charles Xavier', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'CharlesXavier@mydomain.com', 'en'),
|
(108, 'CharlesXavier', 'Charles Xavier', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'CharlesXavier@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(109, 'BruceBanner', 'Bruce Banner', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'BruceBanner@mydomain.com', 'en'),
|
(109, 'BruceBanner', 'Bruce Banner', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'BruceBanner@mydomain.com', 'en', 'e7723f0b24ff05b32ed09d95196f2f29'),
|
||||||
(110, 'JessicaJones', 'Jessica Jones', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'JessicaJones@mydomain.com', 'en'),
|
(110, 'JessicaJones', 'Jessica Jones', 'ac754a330530832ba1bf7687f577da91', 1, 1, 'JessicaJones@mydomain.com', 'en', NULL),
|
||||||
(111, 'Missing', 'Missing', 'ac754a330530832ba1bf7687f577da91', 2, 0, NULL, 'en'),
|
(111, 'Missing', 'Missing', 'ac754a330530832ba1bf7687f577da91', 2, 0, NULL, 'en', NULL),
|
||||||
(112, 'Trash', 'Trash', 'ac754a330530832ba1bf7687f577da91', 2, 0, NULL, 'en');
|
(112, 'Trash', 'Trash', 'ac754a330530832ba1bf7687f577da91', 2, 0, NULL, 'en', NULL);
|
||||||
|
|
||||||
INSERT INTO `account`.`mailAlias`(`id`, `alias`, `description`, `isPublic`)
|
INSERT INTO `account`.`mailAlias`(`id`, `alias`, `description`, `isPublic`)
|
||||||
VALUES
|
VALUES
|
||||||
|
@ -2143,7 +2143,7 @@ INSERT INTO `vn`.`campaign`(`code`, `dated`)
|
||||||
|
|
||||||
INSERT INTO `hedera`.`image`(`collectionFk`, `name`)
|
INSERT INTO `hedera`.`image`(`collectionFk`, `name`)
|
||||||
VALUES
|
VALUES
|
||||||
('user', 9);
|
('user', 'e7723f0b24ff05b32ed09d95196f2f29');
|
||||||
|
|
||||||
INSERT INTO `hedera`.`imageCollectionSize`(`id`, `collectionFk`,`width`, `height`)
|
INSERT INTO `hedera`.`imageCollectionSize`(`id`, `collectionFk`,`width`, `height`)
|
||||||
VALUES
|
VALUES
|
||||||
|
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Loading…
Reference in New Issue