Use findONeAndUpdate and the moderation queue for account flags should only give back pending accounts.

This commit is contained in:
gaba
2017-03-23 16:02:25 -07:00
parent b9c816285d
commit 84f1d3ece2
4 changed files with 23 additions and 25 deletions
@@ -1,5 +1,7 @@
export const SHOW_BANUSER_DIALOG = 'SHOW_BANUSER_DIALOG';
export const HIDE_BANUSER_DIALOG = 'HIDE_BANUSER_DIALOG';
export const SHOW_SUSPENDUSER_DIALOG = 'SHOW_SUSPENDUSER_DIALOG';
export const HIDE_SUSPENDUSER_DIALOG = 'HIDE_SUSPENDUSER_DIALOG';
export const COMMENTS_MODERATION_QUEUE_FETCH_REQUEST = 'COMMENTS_MODERATION_QUEUE_FETCH_REQUEST';
export const COMMENTS_MODERATION_QUEUE_FETCH_SUCCESS = 'COMMENTS_MODERATION_QUEUE_FETCH_SUCCESS';
export const COMMENT_CREATE_SUCCESS = 'COMMENT_CREATE_SUCCESS';
@@ -49,7 +49,7 @@ class SuspendUserDialog extends Component {
const {suspendUser, user} = this.props;
const {stage} = this.state;
const cancel = this.props.onClose;
const cancel = this.props.handleClose;
const next = () => this.setState({stage: stage + 1});
const suspend = () => {
suspendUser({userId: user.user.id, message: this.state.email})
+1 -1
View File
@@ -103,7 +103,7 @@ const RootQuery = {
.then((ids) => {
// Perform the query using the available resolver.
return Users.getByQuery({ids, limit, cursor, sort});
return Users.getByQuery({ids, limit, cursor, sort}).find({status: 'PENDING'});
});
}
+19 -23
View File
@@ -456,7 +456,7 @@ module.exports = class UsersService {
* @param {Function} done callback after the operation is complete
*/
static suspendUser(id, message) {
return UserModel.update({
return UserModel.findOneAndUpdate({
id
}, {
$set: {
@@ -464,31 +464,27 @@ module.exports = class UsersService {
canEditName: true
}
})
.then(() => {
return UsersService.findById(id)
.then((user) => {
if (message) {
let localProfile = user.profiles.find((profile) => profile.provider === 'local');
.then((user) => {
if (message) {
let localProfile = user.profiles.find((profile) => profile.provider === 'local');
if (localProfile) {
const options =
{
template: 'suspension', // needed to know which template to render!
locals: { // specifies the template locals.
body: message
},
subject: 'Email Suspension',
to: localProfile.id // This only works if the user has registered via e-mail.
// We may want a standard way to access a user's e-mail address in the future
};
if (localProfile) {
const options =
{
template: 'suspension', // needed to know which template to render!
locals: { // specifies the template locals.
body: message
},
subject: 'Email Suspension',
to: localProfile.id // This only works if the user has registered via e-mail.
// We may want a standard way to access a user's e-mail address in the future
};
return MailerService.sendSimple(options);
} else {
return Promise.reject(errors.ErrMissingEmail);
}
return MailerService.sendSimple(options);
} else {
return Promise.reject(errors.ErrMissingEmail);
}
});
}
});
}