Added logic to remove user reason once user gets activated

pull/7098/head
Luis Fernando do Nascimento 9 years ago
parent 16a58b5015
commit 3925e8917a
  1. 6
      client/methods/unsetUserReason.js
  2. 30
      packages/rocketchat-lib/server/models/Users.js
  3. 5
      packages/rocketchat-ui-flextab/client/tabs/userInfo.js
  4. 27
      server/methods/unsetUserReason.js

@ -0,0 +1,6 @@
Meteor.methods({
unsetUserReason(userId) {
Meteor.users.update(userId, { $unset: { 'reason' : 1 } });
return true;
}
});

@ -314,16 +314,6 @@ class ModelUsers extends RocketChat.models._Base {
return this.update(_id, update);
}
setReason(_id, reason) {
const update = {
$set: {
reason
}
};
return this.update(_id, update);
}
setCustomFields(_id, fields) {
const values = {};
Object.keys(fields).reduce(key => {
@ -504,6 +494,26 @@ class ModelUsers extends RocketChat.models._Base {
return this.update({ _id }, update);
}
setReason(_id, reason) {
const update = {
$set: {
reason
}
};
return this.update(_id, update);
}
unsetReason(_id) {
const update = {
$unset: {
'reason' : true,
}
};
return this.update(_id, update);
}
// INSERT
create(data) {
const user = {

@ -184,7 +184,7 @@ Template.userInfo.helpers({
shouldDisplayReason() {
const user = Template.instance().user.get();
return RocketChat.settings.get('Accounts_ManuallyApproveNewUsers') && user.active === false;
return RocketChat.settings.get('Accounts_ManuallyApproveNewUsers') && user.active === false && user.reason;
}
});
@ -395,6 +395,9 @@ Template.userInfo.events({
if (user) {
return Meteor.call('setUserActiveStatus', user._id, true, function(error, result) {
if (result) {
Meteor.call('unsetUserReason', user._id);
toastr.success(t('User_has_been_activated'));
}
if (error) {

@ -0,0 +1,27 @@
Meteor.methods({
unsetUserReason(userId) {
check(userId, String);
if (!Meteor.userId()) {
throw new Meteor.Error('error-invalid-user', 'Invalid user', {
method: 'unsetUserReason'
});
}
if (RocketChat.authz.hasPermission(Meteor.userId(), 'edit-other-user-active-status') !== true) {
throw new Meteor.Error('error-not-allowed', 'Not allowed', {
method: 'unsetUserReason'
});
}
const user = RocketChat.models.Users.findOneById(userId);
if (user) {
RocketChat.models.Users.unsetReason(userId);
return true;
}
return false;
}
});
Loading…
Cancel
Save