ParseRole.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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 _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
  9. var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
  10. var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
  11. var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
  12. var _ParseACL = _interopRequireDefault(require("./ParseACL"));
  13. var _ParseError = _interopRequireDefault(require("./ParseError"));
  14. var _ParseObject2 = _interopRequireDefault(require("./ParseObject"));
  15. function _createSuper(Derived) {
  16. var hasNativeReflectConstruct = _isNativeReflectConstruct();
  17. return function () {
  18. var Super = (0, _getPrototypeOf2.default)(Derived),
  19. result;
  20. if (hasNativeReflectConstruct) {
  21. var NewTarget = (0, _getPrototypeOf2.default)(this).constructor;
  22. result = Reflect.construct(Super, arguments, NewTarget);
  23. } else {
  24. result = Super.apply(this, arguments);
  25. }
  26. return (0, _possibleConstructorReturn2.default)(this, result);
  27. };
  28. }
  29. function _isNativeReflectConstruct() {
  30. if (typeof Reflect === "undefined" || !Reflect.construct) return false;
  31. if (Reflect.construct.sham) return false;
  32. if (typeof Proxy === "function") return true;
  33. try {
  34. Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
  35. return true;
  36. } catch (e) {
  37. return false;
  38. }
  39. }
  40. var ParseRole = function (_ParseObject) {
  41. (0, _inherits2.default)(ParseRole, _ParseObject);
  42. var _super = _createSuper(ParseRole);
  43. function ParseRole(name, acl) {
  44. var _this;
  45. (0, _classCallCheck2.default)(this, ParseRole);
  46. _this = _super.call(this, '_Role');
  47. if (typeof name === 'string' && acl instanceof _ParseACL.default) {
  48. _this.setName(name);
  49. _this.setACL(acl);
  50. }
  51. return _this;
  52. }
  53. (0, _createClass2.default)(ParseRole, [{
  54. key: "getName",
  55. value: function () {
  56. var name = this.get('name');
  57. if (name == null || typeof name === 'string') {
  58. return name;
  59. }
  60. return '';
  61. }
  62. }, {
  63. key: "setName",
  64. value: function (name, options) {
  65. this._validateName(name);
  66. return this.set('name', name, options);
  67. }
  68. }, {
  69. key: "getUsers",
  70. value: function () {
  71. return this.relation('users');
  72. }
  73. }, {
  74. key: "getRoles",
  75. value: function () {
  76. return this.relation('roles');
  77. }
  78. }, {
  79. key: "_validateName",
  80. value: function (newName) {
  81. if (typeof newName !== 'string') {
  82. throw new _ParseError.default(_ParseError.default.OTHER_CAUSE, "A role's name must be a String.");
  83. }
  84. if (!/^[0-9a-zA-Z\-_ ]+$/.test(newName)) {
  85. throw new _ParseError.default(_ParseError.default.OTHER_CAUSE, "A role's name can be only contain alphanumeric characters, _, " + '-, and spaces.');
  86. }
  87. }
  88. }, {
  89. key: "validate",
  90. value: function (attrs, options) {
  91. var isInvalid = (0, _get2.default)((0, _getPrototypeOf2.default)(ParseRole.prototype), "validate", this).call(this, attrs, options);
  92. if (isInvalid) {
  93. return isInvalid;
  94. }
  95. if ('name' in attrs && attrs.name !== this.getName()) {
  96. var newName = attrs.name;
  97. if (this.id && this.id !== attrs.objectId) {
  98. return new _ParseError.default(_ParseError.default.OTHER_CAUSE, "A role's name can only be set before it has been saved.");
  99. }
  100. try {
  101. this._validateName(newName);
  102. } catch (e) {
  103. return e;
  104. }
  105. }
  106. return false;
  107. }
  108. }]);
  109. return ParseRole;
  110. }(_ParseObject2.default);
  111. _ParseObject2.default.registerSubclass('_Role', ParseRole);
  112. var _default = ParseRole;
  113. exports.default = _default;