mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-26 07:22:34 +00:00
[sysadmin] clear token
clear api/repo-sync token when delete/inactive an user
This commit is contained in:
@@ -15,7 +15,7 @@ from forms import DetailedProfileForm
|
|||||||
from models import Profile, DetailedProfile
|
from models import Profile, DetailedProfile
|
||||||
from utils import refresh_cache
|
from utils import refresh_cache
|
||||||
from seahub.auth.decorators import login_required
|
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.accounts import User
|
||||||
from seahub.base.templatetags.seahub_tags import email2nickname
|
from seahub.base.templatetags.seahub_tags import email2nickname
|
||||||
from seahub.contacts.models import Contact
|
from seahub.contacts.models import Contact
|
||||||
@@ -162,14 +162,15 @@ def get_user_profile(request, user):
|
|||||||
@login_required
|
@login_required
|
||||||
def delete_user_account(request):
|
def delete_user_account(request):
|
||||||
username = request.user.username
|
username = request.user.username
|
||||||
|
|
||||||
if username == 'demo@seafile.com':
|
if username == 'demo@seafile.com':
|
||||||
messages.error(request, _(u'Demo account can not be deleted.'))
|
messages.error(request, _(u'Demo account can not be deleted.'))
|
||||||
next = request.META.get('HTTP_REFERER', settings.SITE_ROOT)
|
next = request.META.get('HTTP_REFERER', settings.SITE_ROOT)
|
||||||
return HttpResponseRedirect(next)
|
return HttpResponseRedirect(next)
|
||||||
|
|
||||||
user = User.objects.get(email=username)
|
user = User.objects.get(email=username)
|
||||||
user.delete()
|
user.delete()
|
||||||
|
clear_token(username)
|
||||||
|
|
||||||
if is_org_context(request):
|
if is_org_context(request):
|
||||||
org_id = request.user.org.org_id
|
org_id = request.user.org.org_id
|
||||||
|
@@ -27,6 +27,7 @@ from django.http import HttpResponseRedirect, HttpResponse, HttpResponseNotModif
|
|||||||
from django.utils.http import urlquote
|
from django.utils.http import urlquote
|
||||||
from django.views.static import serve as django_static_serve
|
from django.views.static import serve as django_static_serve
|
||||||
|
|
||||||
|
from seahub.api2.models import Token, TokenV2
|
||||||
import seaserv
|
import seaserv
|
||||||
from seaserv import seafile_api
|
from seaserv import seafile_api
|
||||||
from seaserv import seafserv_rpc, seafserv_threaded_rpc, get_repo, get_commits,\
|
from seaserv import seafserv_rpc, seafserv_threaded_rpc, get_repo, get_commits,\
|
||||||
@@ -1173,3 +1174,12 @@ def is_pro_version():
|
|||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
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)
|
||||||
|
@@ -34,7 +34,8 @@ import seahub.settings as settings
|
|||||||
from seahub.settings import INIT_PASSWD, SITE_NAME, \
|
from seahub.settings import INIT_PASSWD, SITE_NAME, \
|
||||||
SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER, SEND_EMAIL_ON_RESETTING_USER_PASSWD, \
|
SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER, SEND_EMAIL_ON_RESETTING_USER_PASSWD, \
|
||||||
ENABLE_GUEST
|
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
|
from seahub.utils.sysinfo import get_platform_name
|
||||||
try:
|
try:
|
||||||
from seahub.settings import ENABLE_TRIAL_ACCOUNT
|
from seahub.settings import ENABLE_TRIAL_ACCOUNT
|
||||||
@@ -538,6 +539,7 @@ def user_remove(request, user_id):
|
|||||||
seafile_api.remove_repo(repo.id)
|
seafile_api.remove_repo(repo.id)
|
||||||
|
|
||||||
user.delete()
|
user.delete()
|
||||||
|
clear_token(user.email)
|
||||||
messages.success(request, _(u'Successfully deleted %s') % user.username)
|
messages.success(request, _(u'Successfully deleted %s') % user.username)
|
||||||
except User.DoesNotExist:
|
except User.DoesNotExist:
|
||||||
messages.error(request, _(u'Failed to delete: the user does not exist'))
|
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,
|
return HttpResponse(json.dumps({'success': True,
|
||||||
'email_sent': email_sent,
|
'email_sent': email_sent,
|
||||||
}), content_type=content_type)
|
}), content_type=content_type)
|
||||||
|
else:
|
||||||
|
clear_token(user.email)
|
||||||
return HttpResponse(json.dumps({'success': True}),
|
return HttpResponse(json.dumps({'success': True}),
|
||||||
content_type=content_type)
|
content_type=content_type)
|
||||||
except User.DoesNotExist:
|
except User.DoesNotExist:
|
||||||
|
Reference in New Issue
Block a user