52 lines
1.2 KiB
TypeScript
52 lines
1.2 KiB
TypeScript
import { BaseModel } from './base.model';
|
|
|
|
export class RoleFieldPermission extends BaseModel {
|
|
static tableName = 'role_field_permissions';
|
|
|
|
id!: string;
|
|
roleId!: string;
|
|
fieldDefinitionId!: string;
|
|
canRead!: boolean;
|
|
canEdit!: boolean;
|
|
createdAt!: Date;
|
|
updatedAt!: Date;
|
|
|
|
static get jsonSchema() {
|
|
return {
|
|
type: 'object',
|
|
required: ['roleId', 'fieldDefinitionId'],
|
|
properties: {
|
|
id: { type: 'string' },
|
|
roleId: { type: 'string' },
|
|
fieldDefinitionId: { type: 'string' },
|
|
canRead: { type: 'boolean' },
|
|
canEdit: { type: 'boolean' },
|
|
},
|
|
};
|
|
}
|
|
|
|
static get relationMappings() {
|
|
const { Role } = require('./role.model');
|
|
const { FieldDefinition } = require('./field-definition.model');
|
|
|
|
return {
|
|
role: {
|
|
relation: BaseModel.BelongsToOneRelation,
|
|
modelClass: Role,
|
|
join: {
|
|
from: 'role_field_permissions.roleId',
|
|
to: 'roles.id',
|
|
},
|
|
},
|
|
fieldDefinition: {
|
|
relation: BaseModel.BelongsToOneRelation,
|
|
modelClass: FieldDefinition,
|
|
join: {
|
|
from: 'role_field_permissions.fieldDefinitionId',
|
|
to: 'field_definitions.id',
|
|
},
|
|
},
|
|
};
|
|
}
|
|
}
|