lynx-framework
Version:
lynx is a NodeJS framework for Web Development, based on decorators and the async/await support.
119 lines (117 loc) • 6.83 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setSkipSync = void 0;
var typeorm_1 = require("typeorm");
var base_entity_1 = require("./base.entity");
var role_entity_1 = require("./role.entity");
var media_entity_1 = require("./media.entity");
var SYNCHRONIZE = true;
function setSkipSync(skip) {
SYNCHRONIZE = !skip;
}
exports.setSkipSync = setSkipSync;
var User = /** @class */ (function (_super) {
__extends(User, _super);
function User() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.hiddenFields = ['password'];
return _this;
}
User.prototype.hasRole = function (name) {
for (var _i = 0, _a = this.roles; _i < _a.length; _i++) {
var role = _a[_i];
if (role.name == name) {
return true;
}
}
return false;
};
Object.defineProperty(User.prototype, "isAdmin", {
get: function () {
return this.hasRole(role_entity_1.default.ADMIN);
},
enumerable: false,
configurable: true
});
Object.defineProperty(User.prototype, "isStuff", {
get: function () {
return this.hasRole(role_entity_1.default.STAFF);
},
enumerable: false,
configurable: true
});
Object.defineProperty(User.prototype, "level", {
get: function () {
var max = 0;
this.roles.forEach(function (r) {
if (r.level > max) {
max = r.level;
}
});
return max;
},
enumerable: false,
configurable: true
});
__decorate([
typeorm_1.PrimaryGeneratedColumn(),
__metadata("design:type", Number)
], User.prototype, "id", void 0);
__decorate([
typeorm_1.Column({ unique: true }),
__metadata("design:type", String)
], User.prototype, "email", void 0);
__decorate([
typeorm_1.Column(),
__metadata("design:type", String)
], User.prototype, "password", void 0);
__decorate([
typeorm_1.Column(),
__metadata("design:type", String)
], User.prototype, "firstName", void 0);
__decorate([
typeorm_1.Column(),
__metadata("design:type", String)
], User.prototype, "lastName", void 0);
__decorate([
typeorm_1.Column(),
__metadata("design:type", String)
], User.prototype, "nickName", void 0);
__decorate([
typeorm_1.ManyToMany(function (_) { return role_entity_1.default; }, function (role) { return role.users; }, { eager: true }),
typeorm_1.JoinTable(),
__metadata("design:type", Array)
], User.prototype, "roles", void 0);
__decorate([
typeorm_1.OneToMany(function (_) { return media_entity_1.default; }, function (media) { return media.owner; }),
__metadata("design:type", Array)
], User.prototype, "media", void 0);
User = __decorate([
typeorm_1.Entity('users', { synchronize: SYNCHRONIZE })
], User);
return User;
}(base_entity_1.default));
exports.default = User;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2x5bngvZW50aXRpZXMvdXNlci5lbnRpdHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQU9pQjtBQUNqQiw2Q0FBdUM7QUFDdkMsNkNBQWlDO0FBQ2pDLCtDQUFtQztBQUVuQyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFFdkIsU0FBZ0IsV0FBVyxDQUFDLElBQWE7SUFDckMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDO0FBQ3hCLENBQUM7QUFGRCxrQ0FFQztBQUdEO0lBQWtDLHdCQUFVO0lBQTVDO1FBQUEscUVBcURDO1FBNUJHLGtCQUFZLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQzs7SUE0QmhDLENBQUM7SUExQlcsc0JBQU8sR0FBZixVQUFnQixJQUFZO1FBQ3hCLEtBQWlCLFVBQVUsRUFBVixLQUFBLElBQUksQ0FBQyxLQUFLLEVBQVYsY0FBVSxFQUFWLElBQVUsRUFBRTtZQUF4QixJQUFJLElBQUksU0FBQTtZQUNULElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUU7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxzQkFBSSx5QkFBTzthQUFYO1lBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx5QkFBTzthQUFYO1lBQ0ksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSx1QkFBSzthQUFUO1lBQ0ksSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQ1osSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO29CQUNmLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO2lCQUNqQjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxHQUFHLENBQUM7UUFDZixDQUFDOzs7T0FBQTtJQWxERDtRQURDLGdDQUFzQixFQUFFOztvQ0FDZDtJQUdYO1FBREMsZ0JBQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzs7dUNBQ1g7SUFFSjtRQUFULGdCQUFNLEVBQUU7OzBDQUFrQjtJQUczQjtRQURDLGdCQUFNLEVBQUU7OzJDQUNTO0lBR2xCO1FBREMsZ0JBQU0sRUFBRTs7MENBQ1E7SUFHakI7UUFEQyxnQkFBTSxFQUFFOzswQ0FDUTtJQUlqQjtRQUZDLG9CQUFVLENBQUMsVUFBQyxDQUFDLElBQUssT0FBQSxxQkFBSSxFQUFKLENBQUksRUFBRSxVQUFDLElBQUksSUFBSyxPQUFBLElBQUksQ0FBQyxLQUFLLEVBQVYsQ0FBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQzlELG1CQUFTLEVBQUU7O3VDQUNFO0lBR2Q7UUFEQyxtQkFBUyxDQUFDLFVBQUMsQ0FBQyxJQUFLLE9BQUEsc0JBQUssRUFBTCxDQUFLLEVBQUUsVUFBQyxLQUFLLElBQUssT0FBQSxLQUFLLENBQUMsS0FBSyxFQUFYLENBQVcsQ0FBQzs7dUNBQ2pDO0lBdkJFLElBQUk7UUFEeEIsZ0JBQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7T0FDekIsSUFBSSxDQXFEeEI7SUFBRCxXQUFDO0NBckRELEFBcURDLENBckRpQyxxQkFBVSxHQXFEM0M7a0JBckRvQixJQUFJIiwiZmlsZSI6ImVudGl0aWVzL3VzZXIuZW50aXR5LmpzIiwic291cmNlUm9vdCI6Ii4uIn0=