Add admin setting to prevent users to self deleting their account

This commit is contained in:
guillaume 2019-07-30 11:57:21 +02:00
parent 84ba42f42e
commit 98e3b0ce77
5 changed files with 31 additions and 2 deletions

View file

@ -113,6 +113,14 @@ template(name='accountSettings')
span {{_ 'yes'}}
input.wekan-form-control#accounts-allowUserNameChange(type="radio" name="allowUserNameChange" value="false" checked="{{#unless allowUserNameChange}}checked{{/unless}}")
span {{_ 'no'}}
li
li.accounts-form
.title {{_ 'accounts-allowUserDelete'}}
.form-group.flex
input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="true" checked="{{#if allowUserDelete}}checked{{/if}}")
span {{_ 'yes'}}
input.wekan-form-control#accounts-allowUserDelete(type="radio" name="allowUserDelete" value="false" checked="{{#unless allowUserDelete}}checked{{/unless}}")
span {{_ 'no'}}
li
button.js-accounts-save.primary {{_ 'save'}}

View file

@ -233,12 +233,17 @@ BlazeComponent.extendComponent({
$('input[name=allowEmailChange]:checked').val() === 'true';
const allowUserNameChange =
$('input[name=allowUserNameChange]:checked').val() === 'true';
const allowUserDelete =
$('input[name=allowUserDelete]:checked').val() === 'true';
AccountSettings.update('accounts-allowEmailChange', {
$set: { booleanValue: allowEmailChange },
});
AccountSettings.update('accounts-allowUserNameChange', {
$set: { booleanValue: allowUserNameChange },
});
AccountSettings.update('accounts-allowUserDelete', {
$set: { booleanValue: allowUserDelete },
});
},
allowEmailChange() {
@ -247,6 +252,9 @@ BlazeComponent.extendComponent({
allowUserNameChange() {
return AccountSettings.findOne('accounts-allowUserNameChange').booleanValue;
},
allowUserDelete() {
return AccountSettings.findOne('accounts-allowUserDelete').booleanValue;
},
events() {
return [

View file

@ -55,8 +55,9 @@ template(name="editProfilePopup")
input.js-profile-email(type="email" value="{{emails.[0].address}}" readonly)
div.buttonsContainer
input.primary.wide(type="submit" value="{{_ 'save'}}")
div
input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
if allowUserDelete
div
input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
template(name="changePasswordPopup")
+atForm(state='changePwd')

View file

@ -35,6 +35,9 @@ Template.editProfilePopup.helpers({
allowUserNameChange() {
return AccountSettings.findOne('accounts-allowUserNameChange').booleanValue;
},
allowUserDelete() {
return AccountSettings.findOne('accounts-allowUserDelete').booleanValue;
},
});
Template.editProfilePopup.events({

View file

@ -68,6 +68,15 @@ if (Meteor.isServer) {
},
},
);
AccountSettings.upsert(
{ _id: 'accounts-allowUserDelete' },
{
$setOnInsert: {
booleanValue: false,
sort: 0,
},
},
);
});
}