- Rid roles and get auth working

This commit is contained in:
2018-03-05 21:30:39 -05:00
parent 0519e4feff
commit b2e91f491e
8 changed files with 63 additions and 485 deletions

View File

@@ -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) => {