mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-16 21:00:31 +00:00
WIP
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
import { Model } from 'objection';
|
||||
import { flatten } from 'lodash';
|
||||
import BaseModel from '@/models/Model';
|
||||
import {viewRolesBuilder} from '@/lib/ViewRolesBuilder';
|
||||
|
||||
export default class Account extends BaseModel {
|
||||
/**
|
||||
@@ -21,6 +22,9 @@ export default class Account extends BaseModel {
|
||||
query.whereIn('accoun_type_id', typesIds);
|
||||
}
|
||||
},
|
||||
viewRolesBuilder(query, conditionals, expression) {
|
||||
viewRolesBuilder(conditionals, expression)(query);
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Model } from 'objection';
|
||||
import BaseModel from '@/models/Model';
|
||||
|
||||
import {viewRolesBuilder} from '@/lib/ViewRolesBuilder';
|
||||
export default class Expense extends BaseModel {
|
||||
/**
|
||||
* Table name
|
||||
@@ -44,6 +44,14 @@ export default class Expense extends BaseModel {
|
||||
query.where('payment_account_id', accountId);
|
||||
}
|
||||
},
|
||||
|
||||
viewRolesBuilder(query, conditionals, expression) {
|
||||
viewRolesBuilder(conditionals, expression)(query);
|
||||
},
|
||||
|
||||
orderBy(query) {
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { Model } from 'objection';
|
||||
import {transform, snakeCase} from 'lodash';
|
||||
import {mapKeysDeep} from '@/utils';
|
||||
|
||||
export default class ModelBase extends Model {
|
||||
static get collection() {
|
||||
@@ -13,4 +15,13 @@ export default class ModelBase extends Model {
|
||||
return result;
|
||||
});
|
||||
}
|
||||
|
||||
$formatJson(json, opt) {
|
||||
const transformed = mapKeysDeep(json, (value, key) => {
|
||||
return snakeCase(key);
|
||||
});
|
||||
const parsedJson = super.$formatJson(transformed, opt);
|
||||
|
||||
return parsedJson;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@ export default class Role extends BaseModel {
|
||||
const Permission = require('@/models/Permission');
|
||||
const Resource = require('@/models/Resource');
|
||||
const User = require('@/models/User');
|
||||
const ResourceField = require('@/models/ResourceField');
|
||||
|
||||
return {
|
||||
/**
|
||||
@@ -58,6 +59,18 @@ export default class Role extends BaseModel {
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* Role may has resource field.
|
||||
*/
|
||||
field: {
|
||||
relation: Model.BelongsToOneRelation,
|
||||
modelClass: ResourceField.default,
|
||||
join: {
|
||||
from: 'roles.fieldId',
|
||||
to: 'resource_fields.id',
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Role may has many associated users.
|
||||
*/
|
||||
|
||||
@@ -6,6 +6,10 @@ import BaseModel from '@/models/Model';
|
||||
export default class User extends BaseModel {
|
||||
// ...PermissionsService
|
||||
|
||||
static get virtualAttributes() {
|
||||
return ['fullName'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Table name
|
||||
*/
|
||||
@@ -43,4 +47,8 @@ export default class User extends BaseModel {
|
||||
verifyPassword(password) {
|
||||
return bcrypt.compareSync(password, this.password);
|
||||
}
|
||||
|
||||
fullName() {
|
||||
return `${this.firstName} ${this.lastName}`;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,19 +39,19 @@ export default class View extends BaseModel {
|
||||
modelClass: ViewColumn.default,
|
||||
join: {
|
||||
from: 'views.id',
|
||||
to: 'view_has_columns.view_id',
|
||||
to: 'view_has_columns.viewId',
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* View model may has many view roles.
|
||||
*/
|
||||
viewRoles: {
|
||||
roles: {
|
||||
relation: Model.HasManyRelation,
|
||||
modelClass: ViewRole.default,
|
||||
join: {
|
||||
from: 'views.id',
|
||||
to: 'view_roles.view_id',
|
||||
to: 'view_roles.viewId',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1,8 +1,21 @@
|
||||
import { Model } from 'objection';
|
||||
import path from 'path';
|
||||
import BaseModel from '@/models/Model';
|
||||
|
||||
export default class ViewRole extends BaseModel {
|
||||
|
||||
/**
|
||||
* Virtual attributes.
|
||||
*/
|
||||
static get virtualAttributes() {
|
||||
return ['comparators'];
|
||||
}
|
||||
|
||||
static get comparators() {
|
||||
return [
|
||||
'equals', 'not_equal', 'contains', 'not_contain',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Table name.
|
||||
*/
|
||||
@@ -21,18 +34,33 @@ export default class ViewRole extends BaseModel {
|
||||
* Relationship mapping.
|
||||
*/
|
||||
static get relationMappings() {
|
||||
const ResourceField = require('@/models/ResourceField');
|
||||
const View = require('@/models/View');
|
||||
|
||||
return {
|
||||
/**
|
||||
* View role model may belongs to view model.
|
||||
*/
|
||||
view: {
|
||||
relation: Model.BelongsToOneRelation,
|
||||
modelBase: path.join(__dirname, 'View'),
|
||||
modelClass: View.default,
|
||||
join: {
|
||||
from: 'view_roles.view_id',
|
||||
from: 'view_roles.viewId',
|
||||
to: 'views.id',
|
||||
},
|
||||
},
|
||||
|
||||
/**
|
||||
* View role model may belongs to resource field model.
|
||||
*/
|
||||
field: {
|
||||
relation: Model.BelongsToOneRelation,
|
||||
modelClass: ResourceField.default,
|
||||
join: {
|
||||
from: 'view_roles.fieldId',
|
||||
to: 'resource_fields.id',
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user