-
-
Notifications
You must be signed in to change notification settings - Fork 527
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
WIP account delete, include new links in user menu
- Loading branch information
Showing
12 changed files
with
268 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
from django.core.exceptions import PermissionDenied | ||
from django.utils.translation import pgettext_lazy | ||
|
||
|
||
def allow_delete_own_account(user): | ||
if user.is_deleting_account: | ||
raise PermissionDenied( | ||
pgettext_lazy("users delete permission", "You can't delete your account.") | ||
) | ||
|
||
if user.is_misago_admin: | ||
raise PermissionDenied( | ||
pgettext_lazy( | ||
"users delete permission", | ||
"You can't delete your account because you are an administrator.", | ||
) | ||
) | ||
|
||
if user.is_staff: | ||
raise PermissionDenied( | ||
pgettext_lazy( | ||
"users delete permission", | ||
"You can't delete your account because you are a staff user.", | ||
) | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
{% extends "misago/account/settings/base.html" %} | ||
{% load i18n misagoforms %} | ||
|
||
|
||
{% block title %}{% trans "Delete account" context "account delete page" %} | {{ block.super }}{% endblock %} | ||
|
||
|
||
{% block page %} | ||
<form action="{% url 'misago:account-delete' %}" method="post"> | ||
{% csrf_token %} | ||
<div class="panel panel-default panel-form"> | ||
<div class="panel-heading"> | ||
<h3 class="panel-title"> | ||
{% trans "Delete account" context "account delete page" %} | ||
</h3> | ||
</div> | ||
<div class="panel-body"> | ||
<p> | ||
{% trans "This form allows you to delete your account. This action is not reversible." context "account delete help" %} | ||
</p> | ||
<p> | ||
{% trans "Your account, including its profile details, IP addresses, and notifications, will be deleted." context "account delete help" %} | ||
</p> | ||
<p> | ||
{% trans "Other content will NOT be deleted, but the username displayed next to it will be changed to one shared by all deleted accounts." context "account delete help" %} | ||
</p> | ||
<p> | ||
{% trans "Your username and email address will become available again for use during registration or for other accounts to change to." context "account delete help" %} | ||
</p> | ||
</div> | ||
<div class="panel-footer"> | ||
{% with form.password as field %} | ||
{% for error in field.errors %} | ||
<p class="text-danger">{{ error }}</p> | ||
{% endfor %} | ||
<div class="input-group"> | ||
<input type="password" class="form-control" maxlength="{{ field.field.max_length }}" id="{{ field.id_for_label }}" name="{{ field.html_name }}" placeholder="{% trans 'Enter your password to confirm' context 'account delete page form' %}" {{ field|requiredhtml }} /> | ||
<span class="input-group-btn"> | ||
<button class="btn btn-danger" type="submit"> | ||
{% trans "Delete my account" context "account delete submit btn" %} | ||
</button> | ||
</span> | ||
</div> | ||
{% endwith %} | ||
</div> | ||
</div> | ||
</form> | ||
{% endblock page %} |
39 changes: 39 additions & 0 deletions
39
misago/templates/misago/account/settings/delete_completed.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
{% extends "misago/base.html" %} | ||
{% load i18n %} | ||
|
||
|
||
{% block title %}{% trans "Account deleted" context "account deleted page" %} | {{ block.super }}{% endblock %} | ||
|
||
|
||
{% block content %} | ||
<div class="page page-error"> | ||
<div class="container page-container"> | ||
<div class="message-panel"> | ||
|
||
<div class="message-icon"> | ||
<span class="material-icon">check</span> | ||
</div> | ||
|
||
<div class="message-body"> | ||
<p class="lead"> | ||
{% blocktrans trimmed with username=deleted_account context "account deleted page" %} | ||
{{ username }}, your account is now being deleted. | ||
{% endblocktrans %} | ||
</p> | ||
<p> | ||
{% trans "You have been logged out, and your account will remain locked until it is deleted." context "account deleted page" %} | ||
</p> | ||
<p> | ||
{% trans "This process may take a few minutes to complete." context "account deleted page" %} | ||
</p> | ||
<p> | ||
<a href="{% url 'misago:index'%}" class="btn btn-default"> | ||
{% trans "Return to homepage" context "account deleted page" %} | ||
</a> | ||
</p> | ||
</div> | ||
|
||
</div> | ||
</div> | ||
</div> | ||
{% endblock content %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import pytest | ||
from django.contrib.auth import get_user_model | ||
|
||
from ..models.deleteduser import DeletedUser | ||
from ..tasks import delete_user | ||
|
||
User = get_user_model() | ||
|
||
|
||
def test_delete_user_task_deletes_user(user): | ||
delete_user(user.id) | ||
|
||
with pytest.raises(User.DoesNotExist): | ||
user.refresh_from_db() | ||
|
||
|
||
def test_delete_user_task_records_user_deletion(user): | ||
delete_user(user.id) | ||
|
||
assert DeletedUser.objects.exists() | ||
|
||
|
||
def test_delete_user_task_does_nothing_if_user_is_not_found(user): | ||
delete_user(user.id + 1) | ||
|
||
user.refresh_from_db() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters