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() { return 'username role _id'; }; module.exports = User;