Eliminando código redundante v1

This commit is contained in:
Juan Ferrer Toribio 2017-10-11 15:36:47 +02:00
parent e52b31ceb3
commit 08da6c9713
46 changed files with 151 additions and 559 deletions

View File

@ -42,8 +42,8 @@ gulp.task('services', function() {
'auth', 'auth',
'salix', 'salix',
'client', 'client',
'production', 'production'
'route' // 'route'
]; ];
for (var service of lbServices) for (var service of lbServices)

View File

@ -1,10 +1,10 @@
module.exports = function(Address) { module.exports = function(Self) {
Address.validate('default',isEnabled,{message: 'No se puede poner predeterminado un consignatario desactivado'}); Self.validate('default',isEnabled,{message: 'No se puede poner predeterminado un consignatario desactivado'});
function isEnabled(err) { function isEnabled(err) {
if (!this.isEnabled && this.isDefaultAddress) err(); if (!this.isEnabled && this.isDefaultAddress) err();
} }
Address.beforeRemote('create',function(ctx, modelInstance, next){ Self.beforeRemote('create',function(ctx, modelInstance, next){
var data = ctx.req.body; var data = ctx.req.body;
create(data, next); create(data, next);
}); });
@ -17,13 +17,13 @@ module.exports = function(Address) {
} }
} }
Address.beforeRemote('prototype.patchAttributes',function(ctx, modelInstance, next){ Self.beforeRemote('prototype.patchAttributes',function(ctx, modelInstance, next){
let newData = ctx.req.body; let newData = ctx.req.body;
newData.id = ctx.req.params.id; newData.id = ctx.req.params.id;
getAddress(ctx, newData, next); getAddress(ctx, newData, next);
}); });
Address.beforeRemote('findById', function(ctx, modelInstance, next) { Self.beforeRemote('findById', function(ctx, modelInstance, next) {
ctx.args.filter = { ctx.args.filter = {
"include": { "include": {
"relation": "province", "relation": "province",
@ -36,7 +36,7 @@ module.exports = function(Address) {
}); });
function getAddress(ctx, newData, next){ function getAddress(ctx, newData, next){
Address.findOne( {where: { id: newData.id}}, function (err, oldData){ Self.findOne( {where: { id: newData.id}}, function (err, oldData){
if(oldData) if(oldData)
callbackGetAddress(ctx, newData, oldData, next); callbackGetAddress(ctx, newData, oldData, next);
}); });
@ -60,7 +60,7 @@ module.exports = function(Address) {
} }
function removeAllDefault(client, next){ function removeAllDefault(client, next){
Address.updateAll({clientFk: client.id, isDefaultAddress: true}, {isDefaultAddress: false}, next); Self.updateAll({clientFk: client.id, isDefaultAddress: true}, {isDefaultAddress: false}, next);
} }
function generateErrorDefaultAddress(){ function generateErrorDefaultAddress(){

View File

@ -1,7 +1,6 @@
{ {
"name": "Address", "name": "Address",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -62,19 +61,5 @@
"model": "Agency", "model": "Agency",
"foreignKey": "defaultAgencyFk" "foreignKey": "defaultAgencyFk"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,7 +1,6 @@
{ {
"name": "AgencyService", "name": "AgencyService",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -36,19 +35,5 @@
"model": "AgencyType", "model": "AgencyType",
"foreignKey": "agencyTypeFk" "foreignKey": "agencyTypeFk"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,7 +1,6 @@
{ {
"name": "ClientCreditLimit", "name": "ClientCreditLimit",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -18,19 +17,5 @@
"model": "Role", "model": "Role",
"foreignKey": "roleFk" "foreignKey": "roleFk"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "ClientCredit", "name": "ClientCredit",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true, "validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
@ -26,19 +26,5 @@
"model": "Employee", "model": "Employee",
"foreignKey": "employeeFk" "foreignKey": "employeeFk"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,19 +1,19 @@
module.exports = function(ClientObservation) { module.exports = function(Self) {
let loopBackContext = require('loopback-context'); let loopBackContext = require('loopback-context');
ClientObservation.validate('text', isEnabled, {message: 'Se debe rellenar el campo de texto'}); Self.validate('text', isEnabled, {message: 'Se debe rellenar el campo de texto'});
function isEnabled(err) { function isEnabled(err) {
if (!this.text) err(); if (!this.text) err();
} }
ClientObservation.observe('before save', function(ctx, next) { Self.observe('before save', function(ctx, next) {
ctx.instance.created = Date(); ctx.instance.created = Date();
let currentUser = loopBackContext.getCurrentContext(); let currentUser = loopBackContext.getCurrentContext();
let userId = currentUser.get('currentUser'); let userId = currentUser.get('currentUser');
let app = require('../../server/server'); let app = require('../../server/server');
let employee = app.models.Employee; let Employee = app.models.Employee;
employee.findOne({where: {userFk: userId}}, function (err, user){ Employee.findOne({where: {userFk: userId}}, function (err, user){
if (user){ if (user){
ctx.instance.employeeFk = user.id; ctx.instance.employeeFk = user.id;
next(); next();

View File

@ -1,8 +1,7 @@
{ {
"name": "ClientObservation", "name": "ClientObservation",
"description": "Notas de los clientes.", "description": "Notas de los clientes.",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -33,20 +32,6 @@
"foreignKey": "id" "foreignKey": "id"
} }
}, },
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
}
],
"scope": { "scope": {
"include": "employee" "include": "employee"
} }

View File

@ -1,66 +1,66 @@
var app = require('../../server/server'); var app = require('../../server/server');
module.exports = function(Client) { module.exports = function(Self) {
var models = app.models; var models = app.models;
var loopBackContext = require('loopback-context'); var loopBackContext = require('loopback-context');
// Methods // Methods
require('../methods/client/activate.js')(Client); require('../methods/client/activate.js')(Self);
require('../methods/client/addresses.js')(Client); require('../methods/client/addresses.js')(Self);
require('../methods/client/before-save.js')(Client); require('../methods/client/before-save.js')(Self);
require('../methods/client/card.js')(Client); require('../methods/client/card.js')(Self);
require('../methods/client/create.js')(Client); require('../methods/client/create.js')(Self);
require('../methods/client/employee.js')(Client); require('../methods/client/employee.js')(Self);
require('../methods/client/filter.js')(Client); require('../methods/client/filter.js')(Self);
require('../methods/client/roles.js')(Client); require('../methods/client/roles.js')(Self);
require('../methods/client/salesperson.js')(Client); require('../methods/client/salesperson.js')(Self);
require('../methods/client/addressesPropagateRe.js')(Client); require('../methods/client/addressesPropagateRe.js')(Self);
// Validations // Validations
Client.validatesUniquenessOf('name', { Self.validatesUniquenessOf('name', {
message: 'El nombre debe ser único' message: 'El nombre debe ser único'
}); });
Client.validatesUniquenessOf('fi', { Self.validatesUniquenessOf('fi', {
message: 'El NIF/CIF debe ser único' message: 'El NIF/CIF debe ser único'
}); });
Client.validatesPresenceOf('socialName', { Self.validatesPresenceOf('socialName', {
message: 'Debe especificarse la razón social' message: 'Debe especificarse la razón social'
}); });
Client.validatesUniquenessOf('socialName', { Self.validatesUniquenessOf('socialName', {
message: 'La razón social debe ser única' message: 'La razón social debe ser única'
}); });
Client.validatesFormatOf('postcode', { Self.validatesFormatOf('postcode', {
message: 'El código postal solo debe contener números', message: 'El código postal solo debe contener números',
allowNull: true, allowNull: true,
allowBlank: true, allowBlank: true,
with: /^\d+$/ with: /^\d+$/
}); });
Client.validatesFormatOf('email', { Self.validatesFormatOf('email', {
message: 'Correo electrónico inválido', message: 'Correo electrónico inválido',
allowNull: true, allowNull: true,
allowBlank: true, allowBlank: true,
with: /^[\w|\.|\-]+@\w[\w|\.|\-]*\w(,[\w|\.|\-]+@\w[\w|\.|\-]*\w)*$/ with: /^[\w|\.|\-]+@\w[\w|\.|\-]*\w(,[\w|\.|\-]+@\w[\w|\.|\-]*\w)*$/
}); });
Client.validatesLengthOf('postcode', { Self.validatesLengthOf('postcode', {
allowNull: true, allowNull: true,
allowBlank: true, allowBlank: true,
min: 3, max: 10 min: 3, max: 10
}); });
var validateIban = require('../validations/validateIban'); var validateIban = require('../validations/validateIban');
Client.validateBinded('iban',validateIban,{ Self.validateBinded('iban',validateIban,{
message:'El iban no tiene el formato correcto' message:'El iban no tiene el formato correcto'
}); });
Client.validate('payMethod', hasSalesMan, { Self.validate('payMethod', hasSalesMan, {
message: 'No se puede cambiar la forma de pago si no hay comercial asignado' message: 'No se puede cambiar la forma de pago si no hay comercial asignado'
}); });
function hasSalesMan(err) { function hasSalesMan(err) {
if(this.payMethod && !this.salesPerson) if(this.payMethod && !this.salesPerson)
err(); err();
} }
Client.validateAsync('payMethodFk', hasIban, { Self.validateAsync('payMethodFk', hasIban, {
message: 'El método de pago seleccionado requiere que se especifique el IBAN' message: 'El método de pago seleccionado requiere que se especifique el IBAN'
}); });
function hasIban(err, done) { function hasIban(err, done) {
@ -71,7 +71,7 @@ module.exports = function(Client) {
}); });
} }
Client.validateAsync('credit', validateCredit, { Self.validateAsync('credit', validateCredit, {
message: 'No tienes privilegios para modificar el crédito' message: 'No tienes privilegios para modificar el crédito'
}); });
function validateCredit(err, done) { function validateCredit(err, done) {
@ -116,7 +116,7 @@ module.exports = function(Client) {
// Si se puso a 0 por gerencia, solo gerencia puede aumentarlo // Si se puso a 0 por gerencia, solo gerencia puede aumentarlo
function validate() { function validate() {
let query = 'SELECT * FROM ClientCredit WHERE clientFk = ? ORDER BY created DESC LIMIT 1'; let query = 'SELECT * FROM ClientCredit WHERE clientFk = ? ORDER BY created DESC LIMIT 1';
Client.dataSource.connector.execute (query, [self.id], Self.dataSource.connector.execute (query, [self.id],
(_, res) => maxCb(_, res)); (_, res) => maxCb(_, res));
} }
@ -143,7 +143,7 @@ module.exports = function(Client) {
AND cc.employeeFk = ${instances[0].employeeFk} AND cc.employeeFk = ${instances[0].employeeFk}
AND r.\`name\` = 'manager'`; AND r.\`name\` = 'manager'`;
Client.dataSource.connector.execute(sql, [], (_, res) => clientCreditCb(_, res)); Self.dataSource.connector.execute(sql, [], (_, res) => clientCreditCb(_, res));
} }
function clientCreditCb(_, instance) { function clientCreditCb(_, instance) {

View File

@ -1,7 +1,6 @@
{ {
"name": "Client", "name": "Client",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -142,21 +141,5 @@
"model": "Address", "model": "Address",
"foreignKey": "clientFk" "foreignKey": "clientFk"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
],
"validations": [],
"methods": {}
} }

View File

@ -1,7 +1,6 @@
{ {
"name": "ContactChannel", "name": "ContactChannel",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -12,19 +11,5 @@
"type": "string", "type": "string",
"required": true "required": true
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,8 +1,7 @@
{ {
"name": "CreditClassification", "name": "CreditClassification",
"description": "Clientes clasificados.", "description": "Clientes clasificados.",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"id": true, "id": true,
@ -22,19 +21,5 @@
"model": "Client", "model": "Client",
"foreignKey": "clientFk" "foreignKey": "clientFk"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,7 +1,6 @@
{ {
"name": "PayMethod", "name": "PayMethod",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -21,19 +20,5 @@
"ibanRequired": { "ibanRequired": {
"type": "boolean" "type": "boolean"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -11,5 +11,10 @@
"mysql": "^2.13.0", "mysql": "^2.13.0",
"nodemailer": "^4.0.1", "nodemailer": "^4.0.1",
"path": "^0.12.7" "path": "^0.12.7"
} },
"repository": {
"type": "git",
"url": "https://git.verdnatura.es/salix"
},
"license": "GPL-3.0"
} }

View File

@ -1,7 +0,0 @@
module.exports = function(Warehouse) {
var serverFilter = {"where": {"isManaged": {"neq": 0}}};
Warehouse.defineScope(serverFilter);
}

View File

@ -1,4 +1,3 @@
var app = require('../../server/server');
module.exports = function(Agency) { module.exports = function(Agency) {
require('../methods/agency/list.js')(Agency); require('../methods/agency/list.js')(Agency);

View File

@ -1,7 +1,6 @@
{ {
"name": "Agency", "name": "Agency",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"id": true, "id": true,
@ -16,19 +15,5 @@
"type": "Number", "type": "Number",
"required": false "required": false
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,7 +1,6 @@
{ {
"name": "Client", "name": "Client",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -12,21 +11,5 @@
"type": "string", "type": "string",
"required": true "required": true
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
],
"validations": [],
"methods": {}
} }

View File

@ -1,34 +0,0 @@
{
"name": "Employee",
"base": "MyModel",
"validateUpsert": true,
"properties": {
"id": {
"type": "Number",
"id": true,
"description": "Identifier"
},
"name":{
"type": "String"
},
"surname":{
"type": "String"
}
},
"relations": {
"user": {
"type": "belongsTo",
"model": "Account",
"foreignKey": "userFk"
}
},
"acls": [],
"include":[
{
"relation": "user",
"scope": {
"fields": ["name"]
}
}
]
}

View File

@ -1,7 +1,6 @@
var app = require('../../server/server');
module.exports = function(FakeProduction) { module.exports = function(Self) {
require('../methods/fake-production/list.js')(FakeProduction); require('../methods/fake-production/list.js')(Self);
require('../methods/fake-production/message-send.js')(FakeProduction); require('../methods/fake-production/message-send.js')(Self);
require('../methods/fake-production/route.js')(FakeProduction); require('../methods/fake-production/route.js')(Self);
}; };

View File

@ -1,7 +1,6 @@
{ {
"name": "FakeProduction", "name": "FakeProduction",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -74,19 +73,5 @@
"routeFk":{ "routeFk":{
"type": "Number" "type": "Number"
} }
},
"acls": [
{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,7 +1,6 @@
{ {
"name": "MessageInbox", "name": "MessageInbox",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -26,19 +25,5 @@
"sendDate":{ "sendDate":{
"type": "date" "type": "date"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,7 +1,6 @@
{ {
"name": "Message", "name": "Message",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -23,19 +22,5 @@
"sendDate":{ "sendDate":{
"type": "date" "type": "date"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,30 +0,0 @@
{
"name": "Province",
"base": "MyModel",
"validateUpsert": true,
"properties": {
"id": {
"type": "Number",
"id": true,
"description": "Identifier"
},
"name": {
"type": "string",
"required": true
}
},
"acls": [
{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW"
},
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
}
]
}

View File

@ -1,7 +1,6 @@
{ {
"name": "Route", "name": "Route",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -12,20 +11,6 @@
"type": "date" "type": "date"
} }
}, },
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
}
],
"validations": [], "validations": [],
"methods": {} "methods": {}
} }

View File

@ -1,5 +1,4 @@
var app = require('../../server/server');
module.exports = function(State) { module.exports = function(Self) {
require('../methods/state/list.js')(State); require('../methods/state/list.js')(Self);
}; };

View File

@ -1,7 +1,6 @@
{ {
"name": "State", "name": "State",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"id": true, "id": true,
@ -24,19 +23,5 @@
"type": "String", "type": "String",
"required": false "required": false
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,5 +1,4 @@
var app = require('../../server/server');
module.exports = function(TicketState) { module.exports = function(Self) {
require('../methods/ticket-state/change-state.js')(TicketState); require('../methods/ticket-state/change-state.js')(Self);
}; };

View File

@ -1,7 +1,6 @@
{ {
"name": "TicketState", "name": "TicketState",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"id": true, "id": true,
@ -29,19 +28,5 @@
"model": "Employee", "model": "Employee",
"foreignKey": "employeeFk" "foreignKey": "employeeFk"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,6 +1,5 @@
var app = require('../../server/server');
module.exports = function(Ticket) { module.exports = function(Self) {
require('../methods/ticket/change-time.js')(Ticket); require('../methods/ticket/change-time.js')(Self);
require('../methods/ticket/change-worker.js')(Ticket); require('../methods/ticket/change-worker.js')(Self);
}; };

View File

@ -1,7 +1,6 @@
{ {
"name": "Ticket", "name": "Ticket",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"id": true, "id": true,
@ -11,19 +10,5 @@
"date": { "date": {
"type": "date" "type": "date"
} }
},
"acls": [{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,5 +0,0 @@
var app = require('../../server/server');
module.exports = function(Warehouse) {
require('../methods/warehouse/list.js')(Warehouse);
};

View File

@ -59,7 +59,7 @@
"public": true "public": true
}, },
"Employee":{ "Employee":{
"dataSource": "client", "dataSource": "vn",
"public": true "public": true
}, },
"Client":{ "Client":{
@ -67,7 +67,7 @@
"public": true "public": true
}, },
"Province":{ "Province":{
"dataSource": "client", "dataSource": "vn",
"public": true "public": true
}, },
"Agency": { "Agency": {

View File

@ -1,3 +1,4 @@
module.exports = function(Delivery) {
require('../methods/filter.js')(Delivery); module.exports = function(Self) {
require('../methods/filter.js')(Self);
}; };

View File

@ -1,7 +1,6 @@
{ {
"name": "Delivery", "name": "Delivery",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"id": true, "id": true,
@ -17,21 +16,5 @@
"warehouseFk":{ "warehouseFk":{
"type": "Number" "type": "Number"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
],
"validations" : [],
"methods": {}
} }

View File

@ -1,7 +1,6 @@
{ {
"name": "Zone", "name": "Zone",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"id": true, "id": true,
@ -14,20 +13,6 @@
"printingOrder":{ "printingOrder":{
"type": "Number" "type": "Number"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,5 +1,30 @@
module.exports = function(app) { module.exports = function(app) {
let models = app.models();
models.forEach(function(model) {
let settings = model.settings;
let acls = settings.acls;
if (!acls)
model.settings.acls = acls = [];
acls.push({
accessType: '*',
principalType: 'ROLE',
principalId: '$everyone',
permission: 'DENY'
});
acls.push({
accessType: '*',
principalType: 'ROLE',
principalId: 'root',
permission: 'ALLOW'
});
if (settings.validateUpsert === undefined)
settings.validateUpsert = true;
});
app.enableAuth(); app.enableAuth();
var router = app.loopback.Router(); var router = app.loopback.Router();

View File

@ -0,0 +1,3 @@
module.exports = function(Self) {
Self.defineScope({where: {isManaged: {neq: 0}}});
};

View File

@ -28,19 +28,5 @@
"updated": { "updated": {
"type": "date" "type": "date"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "Country", "name": "Country",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true, "validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
@ -37,18 +37,6 @@
"principalType": "ROLE", "principalType": "ROLE",
"principalId": "$everyone", "principalId": "$everyone",
"permission": "ALLOW" "permission": "ALLOW"
},
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
] ]
} }

View File

@ -1,7 +1,6 @@
{ {
"name": "Employee", "name": "Employee",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"type": "Number", "type": "Number",
@ -23,19 +22,5 @@
"model": "Account", "model": "Account",
"foreignKey": "userFk" "foreignKey": "userFk"
} }
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
]
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "Province", "name": "Province",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true, "validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
@ -36,18 +36,6 @@
"principalType": "ROLE", "principalType": "ROLE",
"principalId": "$everyone", "principalId": "$everyone",
"permission": "ALLOW" "permission": "ALLOW"
},
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
] ]
} }

View File

@ -1,6 +1,6 @@
module.exports = function(self) { module.exports = function(Self) {
self.setup = function() { Self.setup = function() {
self.super_.setup.call(this); Self.super_.setup.call(this);
let disableMethods = { let disableMethods = {
create: true, create: true,
@ -25,7 +25,7 @@ module.exports = function(self) {
} }
}; };
self.defineScope = function(serverFilter) { Self.defineScope = function(serverFilter) {
this.remoteMethodCtx('list', { this.remoteMethodCtx('list', {
accepts: [ accepts: [
{ {
@ -78,7 +78,7 @@ module.exports = function(self) {
}; };
}; };
self.rawSql = function(query, params, cb) { Self.rawSql = function(query, params, cb) {
var connector = this.dataSource.connector; var connector = this.dataSource.connector;
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
connector.execute(query, params, function(error, response) { connector.execute(query, params, function(error, response) {
@ -92,7 +92,7 @@ module.exports = function(self) {
}); });
}; };
self.remoteMethodCtx = function(methodName, args) { Self.remoteMethodCtx = function(methodName, args) {
var ctx = { var ctx = {
arg: 'context', arg: 'context',
type: 'object', type: 'object',
@ -108,21 +108,21 @@ module.exports = function(self) {
this.remoteMethod(methodName, args); this.remoteMethod(methodName, args);
}; };
self.connectToService = function(ctx, dataSource) { Self.connectToService = function(ctx, dataSource) {
this.app.dataSources[dataSource].connector.remotes.auth = { this.app.dataSources[dataSource].connector.remotes.auth = {
bearer: new Buffer(ctx.req.accessToken.id).toString('base64'), bearer: new Buffer(ctx.req.accessToken.id).toString('base64'),
sendImmediately: true sendImmediately: true
}; };
}; };
self.disconnectFromService = function(dataSource) { Self.disconnectFromService = function(dataSource) {
this.app.dataSources[dataSource].connector.remotes.auth = { this.app.dataSources[dataSource].connector.remotes.auth = {
bearer: new Buffer("").toString('base64'), bearer: new Buffer("").toString('base64'),
sendImmediately: true sendImmediately: true
}; };
}; };
self.installMethod = function(methodName, filterCb) { Self.installMethod = function(methodName, filterCb) {
this.remoteMethod(methodName, { this.remoteMethod(methodName, {
description: 'List items using a filter', description: 'List items using a filter',
accessType: 'READ', accessType: 'READ',
@ -180,7 +180,7 @@ module.exports = function(self) {
}; };
}; };
self.validateBinded = function(propertyName, validatorFn, options) { Self.validateBinded = function(propertyName, validatorFn, options) {
var customValidator = function(err) { var customValidator = function(err) {
if (!validatorFn(this[propertyName])) err(); if (!validatorFn(this[propertyName])) err();
}; };

View File

@ -1,4 +1,4 @@
{ {
"name": "MyModel", "name": "VnModel",
"base": "PersistedModel" "base": "PersistedModel"
} }

View File

@ -0,0 +1,4 @@
module.exports = function(Self) {
require('../methods/warehouse/list.js')(Self);
};

View File

@ -1,7 +1,6 @@
{ {
"name": "Warehouse", "name": "Warehouse",
"base": "MyModel", "base": "VnModel",
"validateUpsert": true,
"properties": { "properties": {
"id": { "id": {
"id": true, "id": true,
@ -24,12 +23,6 @@
"principalType": "ROLE", "principalType": "ROLE",
"principalId": "$everyone", "principalId": "$everyone",
"permission": "ALLOW" "permission": "ALLOW"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "root",
"permission": "ALLOW"
} }
], ],
"scopes" : { "scopes" : {