delete user data
This commit is contained in:
parent
54d923d092
commit
9d3a28e5c1
3 changed files with 60 additions and 4 deletions
|
@ -209,6 +209,25 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main-section-wrapper">
|
||||
<div class="tools-section-wrapper">
|
||||
<div class="import-panel">
|
||||
<h5 class="import-panel__label">{% trans '删除数据和帐号信息' %}</h5>
|
||||
<div class="import-panel__body">
|
||||
<form action="{% url 'users:clear_data' %}" method="POST" >
|
||||
{% csrf_token %}
|
||||
<input type="submit" class="import-panel__button" value="{% trans '永久删除' %}" id="uploadBtn" />
|
||||
<div class="import-panel__checkbox">输入完整的 用户名@实例名 以确认删除
|
||||
<input type="input" name="verification" value="" placeholder="user@mastodon.social">
|
||||
删除将无法撤销
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="grid__aside grid__aside--reverse-order grid__aside--tablet-column">
|
||||
|
|
|
@ -11,6 +11,7 @@ urlpatterns = [
|
|||
path('data/export_marks', export_marks, name='export_marks'),
|
||||
path('data/sync_mastodon', sync_mastodon, name='sync_mastodon'),
|
||||
path('data/reset_visibility', reset_visibility, name='reset_visibility'),
|
||||
path('data/clear_data', clear_data, name='clear_data'),
|
||||
path('preferences/', preferences, name='preferences'),
|
||||
path('logout/', logout, name='logout'),
|
||||
path('delete/', delete, name='delete'),
|
||||
|
|
|
@ -33,10 +33,10 @@ from datetime import timedelta
|
|||
from django.utils import timezone
|
||||
import json
|
||||
from django.contrib import messages
|
||||
from books.models import BookMark
|
||||
from movies.models import MovieMark
|
||||
from games.models import GameMark
|
||||
from music.models import AlbumMark, SongMark
|
||||
from books.models import BookMark, BookReview
|
||||
from movies.models import MovieMark, MovieReview
|
||||
from games.models import GameMark, GameReview
|
||||
from music.models import AlbumMark, SongMark, AlbumReview, SongReview
|
||||
|
||||
|
||||
# Views
|
||||
|
@ -992,3 +992,39 @@ def reset_visibility(request):
|
|||
SongMark.objects.filter(owner=request.user).update(visibility=visibility)
|
||||
messages.add_message(request, messages.INFO, _('已重置。'))
|
||||
return redirect(reverse("users:data"))
|
||||
|
||||
|
||||
@login_required
|
||||
def clear_data(request):
|
||||
if request.method == 'POST':
|
||||
if request.POST.get('verification') == request.user.mastodon_username:
|
||||
BookMark.objects.filter(owner=request.user).delete()
|
||||
MovieMark.objects.filter(owner=request.user).delete()
|
||||
GameMark.objects.filter(owner=request.user).delete()
|
||||
AlbumMark.objects.filter(owner=request.user).delete()
|
||||
SongMark.objects.filter(owner=request.user).delete()
|
||||
BookReview.objects.filter(owner=request.user).delete()
|
||||
MovieReview.objects.filter(owner=request.user).delete()
|
||||
GameReview.objects.filter(owner=request.user).delete()
|
||||
AlbumReview.objects.filter(owner=request.user).delete()
|
||||
SongReview.objects.filter(owner=request.user).delete()
|
||||
request.user.first_name = request.user.username
|
||||
request.user.last_name = request.user.mastodon_site
|
||||
request.user.is_active = False
|
||||
request.user.username = 'removed_' + str(request.user.id)
|
||||
request.user.mastodon_id = 0
|
||||
request.user.mastodon_site = 'removed'
|
||||
request.user.mastodon_token = ''
|
||||
request.user.mastodon_locked = False
|
||||
request.user.mastodon_followers = []
|
||||
request.user.mastodon_following = []
|
||||
request.user.mastodon_mutes = []
|
||||
request.user.mastodon_blocks = []
|
||||
request.user.mastodon_domain_blocks = []
|
||||
request.user.mastodon_account = {}
|
||||
request.user.save()
|
||||
auth_logout(request)
|
||||
return redirect(reverse("users:login"))
|
||||
else:
|
||||
messages.add_message(request, messages.ERROR, _('验证信息不符。'))
|
||||
return redirect(reverse("users:data"))
|
||||
|
|
Loading…
Add table
Reference in a new issue