12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { Model } from 'objection'
- import { User } from './users.mjs'
- /**
- * Groups model
- */
- export class Group extends Model {
- static get tableName() { return 'groups' }
- static get jsonSchema () {
- return {
- type: 'object',
- required: ['name'],
- properties: {
- id: {type: 'integer'},
- name: {type: 'string'},
- isSystem: {type: 'boolean'},
- redirectOnLogin: {type: 'string'},
- createdAt: {type: 'string'},
- updatedAt: {type: 'string'}
- }
- }
- }
- static get jsonAttributes() {
- return ['permissions', 'pageRules']
- }
- static get relationMappings() {
- return {
- users: {
- relation: Model.ManyToManyRelation,
- modelClass: User,
- join: {
- from: 'groups.id',
- through: {
- from: 'userGroups.groupId',
- to: 'userGroups.userId'
- },
- to: 'users.id'
- }
- }
- }
- }
- $beforeUpdate() {
- this.updatedAt = new Date().toISOString()
- }
- $beforeInsert() {
- this.createdAt = new Date().toISOString()
- this.updatedAt = new Date().toISOString()
- }
- }
|