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