Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion kitsune/sumo/static/js/ui.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*jshint*/
/*global Modernizr*/
/*global gettext, Modernizr*/
;(function($) {
"use strict";

Expand Down Expand Up @@ -94,6 +94,10 @@
$('body').on('click', foldingSelectors + ' header', function() {
$(this).closest(foldingSelectors).toggleClass('collapsed');
});

$('form[data-confirm]').on('submit', function() {
return confirm($(this).data('confirm-text'));
});
});

$(window).load(function() {
Expand Down
12 changes: 12 additions & 0 deletions kitsune/users/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,18 @@ def __unicode__(self):
def get_absolute_url(self):
return reverse('users.profile', args=[self.user_id])

def clear(self):
"""Clears out the users profile"""
self.name = ''
self.public_email = False
self.avatar = None
self.bio = ''
self.website = ''
self.twitter = ''
self.facebook = ''
self.irc_handle = ''
self.city = ''


class Setting(ModelBase):
"""User specific value per setting"""
Expand Down
11 changes: 11 additions & 0 deletions kitsune/users/templates/users/close_account.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{% extends 'base.html' %}

{% set title = 'Your account was closed' %}
{% set crumbs = [(None, title)] %}

{% block content %}
<article>
<h1>{{ _('Your account was sucessfully closed!') }}</h1>
<p>{{ _('We\'re sorry to see you go.') }}</p>
</article>
{% endblock %}
6 changes: 6 additions & 0 deletions kitsune/users/templates/users/edit_profile.html
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,11 @@ <h1>{{ title }}</h1>
</div>
</form>
</article>
<form method="post" action="{{ url('users.close_account') }}" data-confirm="confirm" data-confirm-text="{{ _('Are you sure you want to close your account? You cannot undo this action.') }}">
{{ csrf() }}
<p>
<button type="submit" class="btn btn-warning">{{ _('Close account and delete all profile information') }}</button>
</p>
</form>
</div>
{% endblock %}
1 change: 1 addition & 0 deletions kitsune/users/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
url(r'^/register$', views.register, name='users.register'),
url(r'^/registercontributor$', views.register, {'contributor': True},
name='users.registercontributor'),
url(r'^/close_account$', views.close_account, name='users.close_account'),

url(r'^/activate/(?P<activation_key>\w+)$', views.activate,
name='users.old_activate'),
Expand Down
24 changes: 24 additions & 0 deletions kitsune/users/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,30 @@ def profile(request, template, user_id):
'num_documents': user_num_documents(user_profile.user)})


@login_required
@require_POST
def close_account(request):
# Clear the profile
profile = get_object_or_404(Profile, user__id=request.user.id)
profile.clear()
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

save this!

profile.save()

# Deactivate the user and change key information
request.user.username = 'user%s' % request.user.id
request.user.email = '%s@example.com' % request.user.id
request.user.is_active = False

# Remove from all groups
request.user.groups.clear()

request.user.save()

# Log the user out
auth.logout(request)

return render(request, 'users/close_account.html')


@require_POST
@permission_required('users.deactivate_users')
def deactivate(request):
Expand Down