45 |
45 |
from django.template.loader import render_to_string, TemplateDoesNotExist
|
46 |
46 |
from django.core.mail import send_mail
|
47 |
47 |
from django.core import signing
|
|
48 |
from django.core.cache import cache
|
48 |
49 |
from django.core.urlresolvers import reverse
|
49 |
50 |
from django.utils.formats import localize
|
50 |
51 |
from django.contrib import messages
|
... | ... | |
823 |
824 |
def switch_user(request, new_user):
|
824 |
825 |
'''Switch to another user and remember currently logged in user in the
|
825 |
826 |
session. Reserved to superusers.'''
|
|
827 |
|
826 |
828 |
logger = logging.getLogger(__name__)
|
827 |
829 |
if constants.SWITCH_USER_SESSION_KEY in request.session:
|
828 |
830 |
messages.error(request, _('Your user is already switched, go to your '
|
... | ... | |
847 |
849 |
return continue_to_next_url(request)
|
848 |
850 |
|
849 |
851 |
|
850 |
|
def switch_back(request):
|
851 |
|
'''Switch back to original superuser after a user switch'''
|
852 |
|
logger = logging.getLogger(__name__)
|
853 |
|
if constants.SWITCH_USER_SESSION_KEY in request.session:
|
854 |
|
switched = request.session[constants.SWITCH_USER_SESSION_KEY]
|
855 |
|
for key in switched:
|
856 |
|
request.session[key] = switched[key]
|
857 |
|
del request.session[constants.SWITCH_USER_SESSION_KEY]
|
858 |
|
del request._cached_user
|
859 |
|
request.user._wrapped = empty
|
860 |
|
messages.info(request, _('Successfully switched back to user %s')
|
861 |
|
% request.user.get_full_name())
|
862 |
|
logger.info(u'switched back to user %s', request.user)
|
863 |
|
else:
|
864 |
|
messages.warning(request, _('No user to switch back to'))
|
865 |
|
return continue_to_next_url(request)
|
866 |
|
|
867 |
|
|
868 |
852 |
def datetime_to_utc(dt):
|
869 |
853 |
if timezone.is_naive(dt):
|
870 |
854 |
dt = timezone.make_aware(dt, timezone.get_current_timezone())
|