Revision ef20ea07 snf-astakos-app/astakos/im/views.py
b/snf-astakos-app/astakos/im/views.py | ||
---|---|---|
52 | 52 |
from django.db.utils import IntegrityError |
53 | 53 |
from django.contrib.auth.views import password_change |
54 | 54 |
from django.core.exceptions import ValidationError |
55 |
from django.db.models import Q |
|
56 | 55 |
from django.views.decorators.http import require_http_methods |
57 | 56 |
|
58 | 57 |
from astakos.im.models import AstakosUser, Invitation, ApprovalTerms |
59 | 58 |
from astakos.im.activation_backends import get_backend, SimpleBackend |
60 | 59 |
from astakos.im.util import get_context, prepare_response, set_cookie, get_query |
61 | 60 |
from astakos.im.forms import * |
62 |
from astakos.im.functions import send_greeting, send_feedback, SendMailError, \ |
|
63 |
invite as invite_func, logout as auth_logout, activate as activate_func, switch_account_to_shibboleth |
|
64 |
from astakos.im.settings import DEFAULT_CONTACT_EMAIL, DEFAULT_FROM_EMAIL, COOKIE_NAME, COOKIE_DOMAIN, IM_MODULES, SITENAME, LOGOUT_NEXT, LOGGING_LEVEL |
|
61 |
from astakos.im.functions import (send_greeting, send_feedback, SendMailError, |
|
62 |
invite as invite_func, logout as auth_logout, activate as activate_func |
|
63 |
) |
|
64 |
from astakos.im.settings import (DEFAULT_CONTACT_EMAIL, DEFAULT_FROM_EMAIL, |
|
65 |
COOKIE_NAME, COOKIE_DOMAIN, IM_MODULES, SITENAME, LOGOUT_NEXT, LOGGING_LEVEL |
|
66 |
) |
|
65 | 67 |
|
66 | 68 |
logger = logging.getLogger(__name__) |
67 | 69 |
|
... | ... | |
137 | 139 |
template_name = login_template_name |
138 | 140 |
if request.user.is_authenticated(): |
139 | 141 |
return HttpResponseRedirect(reverse('astakos.im.views.edit_profile')) |
140 |
return render_response(template_name, |
|
141 |
login_form = LoginForm(request=request), |
|
142 |
context_instance = get_context(request, extra_context)) |
|
142 |
|
|
143 |
return render_response( |
|
144 |
template_name, |
|
145 |
login_form = LoginForm(request=request), |
|
146 |
context_instance = get_context(request, extra_context) |
|
147 |
) |
|
143 | 148 |
|
144 | 149 |
@require_http_methods(["GET", "POST"]) |
145 | 150 |
@login_required |
... | ... | |
462 | 467 |
return index(request) |
463 | 468 |
|
464 | 469 |
try: |
465 |
local_user = AstakosUser.objects.get(~Q(id = user.id), email=user.email, is_active=True) |
|
466 |
except AstakosUser.DoesNotExist: |
|
467 |
try: |
|
468 |
activate_func(user, greeting_email_template_name, helpdesk_email_template_name, verify_email=True) |
|
469 |
response = prepare_response(request, user, next, renew=True) |
|
470 |
transaction.commit() |
|
471 |
return response |
|
472 |
except SendMailError, e: |
|
473 |
message = e.message |
|
474 |
messages.add_message(request, messages.ERROR, message) |
|
475 |
transaction.rollback() |
|
476 |
return index(request) |
|
477 |
except BaseException, e: |
|
478 |
status = messages.ERROR |
|
479 |
message = _('Something went wrong.') |
|
480 |
messages.add_message(request, messages.ERROR, message) |
|
481 |
logger.exception(e) |
|
482 |
transaction.rollback() |
|
483 |
return index(request) |
|
484 |
else: |
|
485 |
try: |
|
486 |
user = switch_account_to_shibboleth(user, local_user, greeting_email_template_name) |
|
487 |
response = prepare_response(request, user, next, renew=True) |
|
488 |
transaction.commit() |
|
489 |
return response |
|
490 |
except SendMailError, e: |
|
491 |
message = e.message |
|
492 |
messages.add_message(request, messages.ERROR, message) |
|
493 |
transaction.rollback() |
|
494 |
return index(request) |
|
495 |
except BaseException, e: |
|
496 |
status = messages.ERROR |
|
497 |
message = _('Something went wrong.') |
|
498 |
messages.add_message(request, messages.ERROR, message) |
|
499 |
logger.exception(e) |
|
500 |
transaction.rollback() |
|
501 |
return index(request) |
|
470 |
activate_func(user, greeting_email_template_name, helpdesk_email_template_name, verify_email=True) |
|
471 |
response = prepare_response(request, user, next, renew=True) |
|
472 |
transaction.commit() |
|
473 |
return response |
|
474 |
except SendMailError, e: |
|
475 |
message = e.message |
|
476 |
messages.add_message(request, messages.ERROR, message) |
|
477 |
transaction.rollback() |
|
478 |
return index(request) |
|
479 |
except BaseException, e: |
|
480 |
status = messages.ERROR |
|
481 |
message = _('Something went wrong.') |
|
482 |
messages.add_message(request, messages.ERROR, message) |
|
483 |
logger.exception(e) |
|
484 |
transaction.rollback() |
|
485 |
return index(request) |
|
502 | 486 |
|
503 | 487 |
@require_http_methods(["GET", "POST"]) |
504 | 488 |
def approval_terms(request, term_id=None, template_name='im/approval_terms.html', extra_context={}): |
Also available in: Unified diff