138 lines
2.2 KiB
JavaScript
138 lines
2.2 KiB
JavaScript
const mongoose = require('mongoose');
|
|
const bcrypt = require('bcryptjs');
|
|
|
|
// User Schema
|
|
const UserSchema = mongoose.Schema({
|
|
chatId:{
|
|
type: String,
|
|
required: true
|
|
},
|
|
name:{
|
|
type: String,
|
|
required: true
|
|
},
|
|
email:{
|
|
type: String,
|
|
required: true
|
|
},
|
|
username:{
|
|
type: String,
|
|
required: true
|
|
},
|
|
auth:{
|
|
type: String,
|
|
required: true
|
|
},
|
|
password:{
|
|
type: String,
|
|
required: true
|
|
},
|
|
isBanned:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
isAdmin:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
isEmployee:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
canAdd:{
|
|
user:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
work:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
device:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
files:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
}
|
|
|
|
},
|
|
canModify:{
|
|
user:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
work:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
device:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
}
|
|
},
|
|
canDelete:{
|
|
user:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
work:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
device:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
files:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
}
|
|
},
|
|
canDownload:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
notifyInvoices:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
canAccess:{
|
|
invoices:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
},
|
|
clients:{
|
|
type: Boolean,
|
|
default: false,
|
|
required: true
|
|
}
|
|
}
|
|
});
|
|
|
|
UserSchema.methods.comparePassword = function(candidatePassword, cb) {
|
|
bcrypt.compare(candidatePassword, this.password, function(err, isMatch) {
|
|
if (err) return cb(err);
|
|
cb(null, isMatch);
|
|
});
|
|
};
|
|
const User = module.exports = mongoose.model('User', UserSchema);
|