- Rid roles and get auth working
This commit is contained in:
117
models/user.js
117
models/user.js
@@ -7,8 +7,7 @@ const UserSchema = new Mongoose.Schema({
|
||||
password: { type: String },
|
||||
name: { first: { type: String, required: true }, last: { type: String, required: true } },
|
||||
email: { type: String, required: true, unique: true },
|
||||
permission: { type: Mongoose.Schema.Types.ObjectId, ref: 'roles', required: false, default: null },
|
||||
avatar: String,
|
||||
can: [{ type: String, enum: ['add','edit','delete','manage','super','update','view'], default: ['view'] }],
|
||||
forceReset: { type: Boolean, default: true },
|
||||
updated_at: { type: Date, default: Date.now }
|
||||
});
|
||||
@@ -138,6 +137,7 @@ function confirmPassword (username, passwordToValidate, callback) {
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
||||
adminUpdatePassword: (e, username, password) => {
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
UserModel.findOneAndUpdate({ userName: username }, { $set: password }, { new: true }, (err, result) => {
|
||||
@@ -172,8 +172,7 @@ module.exports = {
|
||||
var loginObject, user;
|
||||
|
||||
UserModel
|
||||
.findOne({ userName: login.userName }, 'userName name title email password permission avatar settings forceReset')
|
||||
.populate('permission', 'name disabled manageRoles manageUsers manageCategories manageAppPreferences deleteVendor addVendorTag addVendorSample addVendorComment editVendor addNewVendor viewPrivateDetails viewPublicDetails')
|
||||
.findOne({ userName: login.userName }, 'username name email password can forceReset')
|
||||
.exec((err, result) => {
|
||||
if (err) {
|
||||
loginObject = {
|
||||
@@ -221,14 +220,10 @@ module.exports = {
|
||||
if (valid) {
|
||||
loginObject.user = {
|
||||
_id: user._id,
|
||||
uid: user._id,
|
||||
userName: user.userName,
|
||||
username: user.username,
|
||||
name: user.name,
|
||||
title: user.title,
|
||||
email: user.email,
|
||||
permission: user.permission,
|
||||
settings: user.settings,
|
||||
avatar: user.avatar
|
||||
can: user.can
|
||||
};
|
||||
|
||||
loginObject.timestamp = Date.now();
|
||||
@@ -327,60 +322,6 @@ module.exports = {
|
||||
});
|
||||
},
|
||||
|
||||
createUserGod: (e, user) => {
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
hashPassword(user.password, (err, hashedPassword) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
|
||||
if (hashedPassword) {
|
||||
user.password = hashedPassword;
|
||||
|
||||
var userInstance = new UserModel(user);
|
||||
|
||||
userInstance.save((err, result) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
|
||||
if (result) {
|
||||
resolve(result);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
promise.then((result) => {
|
||||
e.emit('createUserGod', null, result);
|
||||
})
|
||||
.catch((err) => {
|
||||
e.emit('createUserGod', err, null);
|
||||
});
|
||||
},
|
||||
|
||||
createUserSetting: (e, userId, data) => {
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
UserModel.findByIdAndUpdate(userId, { $push: { settings: data } }, (err, result) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
|
||||
if (result) {
|
||||
resolve(result);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
promise.then((result) => {
|
||||
e.emit('createUserSetting', null, result);
|
||||
})
|
||||
.catch((err) => {
|
||||
e.emit('createUserSetting', err, null);
|
||||
});
|
||||
},
|
||||
|
||||
deleteUser: (e, id) => {
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
UserModel.remove({ _id: id }, (err, result) => {
|
||||
@@ -573,54 +514,6 @@ module.exports = {
|
||||
});
|
||||
},
|
||||
|
||||
updateUserByUserName: (e, username, user) => {
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
UserModel.update({ userName: username }, { $set: user }, { new: true }, (err, result) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
|
||||
if (result) {
|
||||
resolve(result);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
promise.then((result) => {
|
||||
e.emit('updateUserByUserName', null, result);
|
||||
})
|
||||
.catch((err) => {
|
||||
e.emit('updateUserByUserName', err, null);
|
||||
});
|
||||
},
|
||||
|
||||
updateUserSetting: (e, userId, settingsId, data) => {
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
var changed = {};
|
||||
|
||||
for (let property in data) {
|
||||
changed['settings.$.' + property] = data[property];
|
||||
}
|
||||
|
||||
UserModel.update({ _id: userId, 'settings._id': settingsId }, { $set: changed }, { new: true }, (err, result) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
|
||||
if (result) {
|
||||
resolve(result);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
promise.then((result) => {
|
||||
e.emit('updateUserSetting', null, result);
|
||||
})
|
||||
.catch((err) => {
|
||||
e.emit('updateUserSetting', err, null);
|
||||
});
|
||||
},
|
||||
|
||||
updatePassword: (e, id, token, data) => {
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
Reset.checkReset(null, id, token, (err, validatedId) => {
|
||||
|
||||
Reference in New Issue
Block a user