From 84ba42f42e01f4f1c03bb29b8b92ab2b7f802e64 Mon Sep 17 00:00:00 2001 From: guillaume Date: Tue, 30 Jul 2019 11:42:43 +0200 Subject: [PATCH 1/4] add popup to confirm deleting one account --- client/components/settings/peopleBody.js | 4 ++-- client/components/users/userHeader.jade | 5 +++++ client/components/users/userHeader.js | 6 +++--- i18n/en.i18n.json | 3 ++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/client/components/settings/peopleBody.js b/client/components/settings/peopleBody.js index b09f6599b..a9f2247c2 100644 --- a/client/components/settings/peopleBody.js +++ b/client/components/settings/peopleBody.js @@ -243,8 +243,8 @@ Template.editUserPopup.events({ } else Popup.close(); }, - 'click #deleteButton'() { + 'click #deleteButton': Popup.afterConfirm('userDelete', function() { Users.remove(this.userId); Popup.close(); - }, + }), }); diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade index 2a3d04cc5..99540cc05 100644 --- a/client/components/users/userHeader.jade +++ b/client/components/users/userHeader.jade @@ -82,3 +82,8 @@ template(name="changeSettingsPopup") | {{_ 'show-cards-minimum-count'}} input#show-cards-count-at.inline-input.left(type="number" value="#{showCardsCountAt}" min="0" max="99" onkeydown="return false") input.js-apply-show-cards-at.left(type="submit" value="{{_ 'apply'}}") + + +template(name="userDeletePopup") + p {{_ 'delete-user-confirm-popup'}} + button.js-confirm.negate.full(type="submit") {{_ 'delete'}} diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js index 0434f6473..9693d7cf9 100644 --- a/client/components/users/userHeader.js +++ b/client/components/users/userHeader.js @@ -104,11 +104,11 @@ Template.editProfilePopup.events({ }); } else Popup.back(); }, - 'click #deleteButton'() { - Users.remove(Meteor.userId()); + 'click #deleteButton': Popup.afterConfirm('userDelete', function() { Popup.close(); + Users.remove(Meteor.userId()); AccountsTemplates.logout(); - }, + }), }); // XXX For some reason the useraccounts autofocus isnt working in this case. diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 6274e08a4..297770822 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -722,5 +722,6 @@ "act-almostdue": "was reminding the current due (__timeValue__) of __card__ is approaching", "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", - "act-atUserComment": "You were mentioned in [__board__] __card__" + "act-atUserComment": "You were mentioned in [__board__] __card__", + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo." } From 98e3b0ce77cc8c7367fc9cf592f4d6698d16e7f0 Mon Sep 17 00:00:00 2001 From: guillaume Date: Tue, 30 Jul 2019 11:57:21 +0200 Subject: [PATCH 2/4] Add admin setting to prevent users to self deleting their account --- client/components/settings/settingBody.jade | 8 ++++++++ client/components/settings/settingBody.js | 8 ++++++++ client/components/users/userHeader.jade | 5 +++-- client/components/users/userHeader.js | 3 +++ models/accountSettings.js | 9 +++++++++ 5 files changed, 31 insertions(+), 2 deletions(-) diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade index 43836b2b3..8eb584dc1 100644 --- a/client/components/settings/settingBody.jade +++ b/client/components/settings/settingBody.jade @@ -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'}} diff --git a/client/components/settings/settingBody.js b/client/components/settings/settingBody.js index 4ec0c7593..f9b5c08df 100644 --- a/client/components/settings/settingBody.js +++ b/client/components/settings/settingBody.js @@ -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 [ diff --git a/client/components/users/userHeader.jade b/client/components/users/userHeader.jade index 99540cc05..946bdab18 100644 --- a/client/components/users/userHeader.jade +++ b/client/components/users/userHeader.jade @@ -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') diff --git a/client/components/users/userHeader.js b/client/components/users/userHeader.js index 9693d7cf9..36fb2020b 100644 --- a/client/components/users/userHeader.js +++ b/client/components/users/userHeader.js @@ -35,6 +35,9 @@ Template.editProfilePopup.helpers({ allowUserNameChange() { return AccountSettings.findOne('accounts-allowUserNameChange').booleanValue; }, + allowUserDelete() { + return AccountSettings.findOne('accounts-allowUserDelete').booleanValue; + }, }); Template.editProfilePopup.events({ diff --git a/models/accountSettings.js b/models/accountSettings.js index c68e905ca..ed1087cad 100644 --- a/models/accountSettings.js +++ b/models/accountSettings.js @@ -68,6 +68,15 @@ if (Meteor.isServer) { }, }, ); + AccountSettings.upsert( + { _id: 'accounts-allowUserDelete' }, + { + $setOnInsert: { + booleanValue: false, + sort: 0, + }, + }, + ); }); } From f414fe447d3c6dc35515b1440d334f25271b5513 Mon Sep 17 00:00:00 2001 From: guillaume Date: Tue, 30 Jul 2019 12:00:25 +0200 Subject: [PATCH 3/4] add transaltion --- i18n/en.i18n.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 297770822..407c30add 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -723,5 +723,6 @@ "act-pastdue": "was reminding the current due (__timeValue__) of __card__ is past", "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", "act-atUserComment": "You were mentioned in [__board__] __card__", - "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo." + "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", + "accounts-allowUserDelete": "Allow users to self deleting their account" } From 61bc6d3b7a4c3448fc2b0881c7a66f9e54b7e752 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Tue, 30 Jul 2019 20:42:07 +0300 Subject: [PATCH 4/4] Fix typo. --- i18n/en.i18n.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/en.i18n.json b/i18n/en.i18n.json index 407c30add..3edf1fce8 100644 --- a/i18n/en.i18n.json +++ b/i18n/en.i18n.json @@ -724,5 +724,5 @@ "act-duenow": "was reminding the current due (__timeValue__) of __card__ is now", "act-atUserComment": "You were mentioned in [__board__] __card__", "delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.", - "accounts-allowUserDelete": "Allow users to self deleting their account" + "accounts-allowUserDelete": "Allow users to self delete their account" }