Add change email address

Set allow email change in admin panel
This commit is contained in:
nztqa 2017-08-07 17:40:50 +09:00
parent 57219df16a
commit 6a10257fd7
9 changed files with 153 additions and 4 deletions

33
models/accountSettings.js Normal file
View file

@ -0,0 +1,33 @@
AccountSettings = new Mongo.Collection('accountSettings');
AccountSettings.attachSchema(new SimpleSchema({
_id: {
type: String,
},
booleanValue: {
type: Boolean,
optional: true,
},
sort: {
type: Number,
decimal: true,
},
}));
AccountSettings.allow({
update(userId) {
const user = Users.findOne(userId);
return user && user.isAdmin;
},
});
if (Meteor.isServer) {
Meteor.startup(() => {
AccountSettings.upsert({ _id: 'accounts-allowEmailChange' }, {
$setOnInsert: {
booleanValue: false,
sort: 0,
},
});
});
}

View file

@ -334,6 +334,28 @@ Meteor.methods({
check(limit, Number);
Meteor.user().setShowCardsCountAt(limit);
},
setEmail(email) {
check(email, String);
const existingUser = Users.findOne({ 'emails.address': email }, { fields: { _id: 1 } });
if (existingUser) {
throw new Meteor.Error('email-already-taken');
} else {
Users.update(this.userId, {
$set: {
emails: [{
address: email,
verified: false,
}],
},
});
}
},
setUsernameAndEmail(username, email) {
check(username, String);
check(email, String);
Meteor.call('setUsername', username);
Meteor.call('setEmail', email);
},
});
if (Meteor.isServer) {