ParseRole.js 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
  7. var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
  8. var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
  9. var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
  10. var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
  11. var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
  12. var _CoreManager = _interopRequireDefault(require("./CoreManager"));
  13. var _ParseACL = _interopRequireDefault(require("./ParseACL"));
  14. var _ParseError = _interopRequireDefault(require("./ParseError"));
  15. var _ParseObject2 = _interopRequireDefault(require("./ParseObject"));
  16. function _callSuper(t, o, e) {
  17. return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e));
  18. }
  19. function _isNativeReflectConstruct() {
  20. try {
  21. var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
  22. } catch (t) {}
  23. return (_isNativeReflectConstruct = function () {
  24. return !!t;
  25. })();
  26. }
  27. var ParseRole = function (_ParseObject) {
  28. function ParseRole(name, acl) {
  29. var _this;
  30. (0, _classCallCheck2.default)(this, ParseRole);
  31. _this = _callSuper(this, ParseRole, ['_Role']);
  32. if (typeof name === 'string' && acl instanceof _ParseACL.default) {
  33. _this.setName(name);
  34. _this.setACL(acl);
  35. }
  36. return _this;
  37. }
  38. (0, _inherits2.default)(ParseRole, _ParseObject);
  39. return (0, _createClass2.default)(ParseRole, [{
  40. key: "getName",
  41. value: function () {
  42. var name = this.get('name');
  43. if (name == null || typeof name === 'string') {
  44. return name;
  45. }
  46. return '';
  47. }
  48. }, {
  49. key: "setName",
  50. value: function (name, options) {
  51. this._validateName(name);
  52. return this.set('name', name, options);
  53. }
  54. }, {
  55. key: "getUsers",
  56. value: function () {
  57. return this.relation('users');
  58. }
  59. }, {
  60. key: "getRoles",
  61. value: function () {
  62. return this.relation('roles');
  63. }
  64. }, {
  65. key: "_validateName",
  66. value: function (newName) {
  67. if (typeof newName !== 'string') {
  68. throw new _ParseError.default(_ParseError.default.OTHER_CAUSE, "A role's name must be a String.");
  69. }
  70. if (!/^[0-9a-zA-Z\-_ ]+$/.test(newName)) {
  71. throw new _ParseError.default(_ParseError.default.OTHER_CAUSE, "A role's name can be only contain alphanumeric characters, _, " + '-, and spaces.');
  72. }
  73. }
  74. }, {
  75. key: "validate",
  76. value: function (attrs, options) {
  77. var isInvalid = (0, _get2.default)((0, _getPrototypeOf2.default)(ParseRole.prototype), "validate", this)(attrs, options);
  78. if (isInvalid) {
  79. return isInvalid;
  80. }
  81. if ('name' in attrs && attrs.name !== this.getName()) {
  82. var newName = attrs.name;
  83. if (this.id && this.id !== attrs.objectId) {
  84. return new _ParseError.default(_ParseError.default.OTHER_CAUSE, "A role's name can only be set before it has been saved.");
  85. }
  86. try {
  87. this._validateName(newName);
  88. } catch (e) {
  89. return e;
  90. }
  91. }
  92. return false;
  93. }
  94. }]);
  95. }(_ParseObject2.default);
  96. _CoreManager.default.setParseRole(ParseRole);
  97. _ParseObject2.default.registerSubclass('_Role', ParseRole);
  98. var _default = exports.default = ParseRole;