user.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const _ = require('underscore');
  2. const Backbone = require('backbone');
  3. const model = Backbone.Model.extend({
  4. idAttribute: 'id',
  5. defaults: function () {
  6. return {
  7. id: undefined,
  8. name: '',
  9. nickname: '',
  10. email: '',
  11. is_disabled: false,
  12. roles: [],
  13. permissions: null
  14. };
  15. },
  16. /**
  17. * @returns {Boolean}
  18. */
  19. isAdmin: function () {
  20. return _.indexOf(this.get('roles'), 'admin') !== -1;
  21. },
  22. /**
  23. * Checks if the perm has either `view` or `manage` value
  24. *
  25. * @param {String} item
  26. * @returns {Boolean}
  27. */
  28. canView: function (item) {
  29. let permissions = this.get('permissions');
  30. return permissions !== null && typeof permissions[item] !== 'undefined' && ['view', 'manage'].indexOf(permissions[item]) !== -1;
  31. },
  32. /**
  33. * Checks if the perm has `manage` value
  34. *
  35. * @param {String} item
  36. * @returns {Boolean}
  37. */
  38. canManage: function (item) {
  39. let permissions = this.get('permissions');
  40. return permissions !== null && typeof permissions[item] !== 'undefined' && permissions[item] === 'manage';
  41. }
  42. });
  43. module.exports = {
  44. Model: model,
  45. Collection: Backbone.Collection.extend({
  46. model: model
  47. })
  48. };