user.js 1013 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // Objection Docs:
  2. // http://vincit.github.io/objection.js/
  3. const db = require('../db');
  4. const Model = require('objection').Model;
  5. const UserPermission = require('./user_permission');
  6. Model.knex(db);
  7. class User extends Model {
  8. $beforeInsert () {
  9. this.created_on = Model.raw('NOW()');
  10. this.modified_on = Model.raw('NOW()');
  11. // Default for roles
  12. if (typeof this.roles === 'undefined') {
  13. this.roles = [];
  14. }
  15. }
  16. $beforeUpdate () {
  17. this.modified_on = Model.raw('NOW()');
  18. }
  19. static get name () {
  20. return 'User';
  21. }
  22. static get tableName () {
  23. return 'user';
  24. }
  25. static get jsonAttributes () {
  26. return ['roles'];
  27. }
  28. static get relationMappings () {
  29. return {
  30. permissions: {
  31. relation: Model.HasOneRelation,
  32. modelClass: UserPermission,
  33. join: {
  34. from: 'user.id',
  35. to: 'user_permission.user_id'
  36. },
  37. modify: function (qb) {
  38. qb.omit(['id', 'created_on', 'modified_on', 'user_id']);
  39. }
  40. }
  41. };
  42. }
  43. }
  44. module.exports = User;