1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-25 14:50:29 +00:00

[sysadmin] clear token

clear api/repo-sync token when delete/inactive an user
This commit is contained in:
lian
2015-03-09 17:34:28 +08:00
parent b6f8935c0f
commit a22f1acc22
3 changed files with 19 additions and 4 deletions

View File

@@ -15,7 +15,7 @@ from forms import DetailedProfileForm
from models import Profile, DetailedProfile
from utils import refresh_cache
from seahub.auth.decorators import login_required
from seahub.utils import is_org_context
from seahub.utils import is_org_context, clear_token
from seahub.base.accounts import User
from seahub.base.templatetags.seahub_tags import email2nickname
from seahub.contacts.models import Contact
@@ -162,14 +162,15 @@ def get_user_profile(request, user):
@login_required
def delete_user_account(request):
username = request.user.username
if username == 'demo@seafile.com':
messages.error(request, _(u'Demo account can not be deleted.'))
next = request.META.get('HTTP_REFERER', settings.SITE_ROOT)
return HttpResponseRedirect(next)
user = User.objects.get(email=username)
user.delete()
clear_token(username)
if is_org_context(request):
org_id = request.user.org.org_id

View File

@@ -27,6 +27,7 @@ from django.http import HttpResponseRedirect, HttpResponse, HttpResponseNotModif
from django.utils.http import urlquote
from django.views.static import serve as django_static_serve
from seahub.api2.models import Token, TokenV2
import seaserv
from seaserv import seafile_api
from seaserv import seafserv_rpc, seafserv_threaded_rpc, get_repo, get_commits,\
@@ -1173,3 +1174,12 @@ def is_pro_version():
return True
else:
return False
def clear_token(username):
'''
clear web api and repo sync token
when delete/inactive an user
'''
Token.objects.filter(user = username).delete()
TokenV2.objects.filter(user = username).delete()
seafile_api.delete_repo_tokens_by_email(username)

View File

@@ -34,7 +34,8 @@ import seahub.settings as settings
from seahub.settings import INIT_PASSWD, SITE_NAME, \
SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER, SEND_EMAIL_ON_RESETTING_USER_PASSWD, \
ENABLE_GUEST
from seahub.utils import send_html_email, get_user_traffic_list, get_server_id
from seahub.utils import send_html_email, get_user_traffic_list, \
get_server_id, clear_token
from seahub.utils.sysinfo import get_platform_name
try:
from seahub.settings import ENABLE_TRIAL_ACCOUNT
@@ -538,6 +539,7 @@ def user_remove(request, user_id):
seafile_api.remove_repo(repo.id)
user.delete()
clear_token(user.email)
messages.success(request, _(u'Successfully deleted %s') % user.username)
except User.DoesNotExist:
messages.error(request, _(u'Failed to delete: the user does not exist'))
@@ -670,6 +672,8 @@ def user_toggle_status(request, email):
return HttpResponse(json.dumps({'success': True,
'email_sent': email_sent,
}), content_type=content_type)
else:
clear_token(user.email)
return HttpResponse(json.dumps({'success': True}),
content_type=content_type)
except User.DoesNotExist: