forked from hippoz/brainlet
44 lines
No EOL
990 B
JavaScript
Executable file
44 lines
No EOL
990 B
JavaScript
Executable file
const config = require("../config");
|
|
|
|
const mongoose = require("mongoose");
|
|
|
|
const userSchema = new mongoose.Schema({
|
|
username: String,
|
|
password: String,
|
|
email: String,
|
|
role: String,
|
|
});
|
|
|
|
userSchema.method("getPublicObject", function() {
|
|
return {
|
|
username: this.username,
|
|
permissionLevel: config.roleMap[this.role],
|
|
role: this.role,
|
|
_id: this._id
|
|
};
|
|
});
|
|
|
|
userSchema.method("getFullObject", function() {
|
|
return {
|
|
username: this.username,
|
|
password: this.password,
|
|
email: this.email,
|
|
permissionLevel: config.roleMap[this.role],
|
|
role: this.role,
|
|
_id: this._id
|
|
};
|
|
});
|
|
|
|
const User = mongoose.model("User", userSchema);
|
|
|
|
User.findByUsername = async function(username) {
|
|
return await User.findOne({ username }).exec();
|
|
};
|
|
|
|
User.getPulicFields = function(isPartial=false) {
|
|
if (isPartial)
|
|
return "username _id";
|
|
return "username role _id";
|
|
};
|
|
|
|
module.exports = User; |