def login(request, template_name='cas/login.html', success_redirect=None): if not success_redirect: success_redirect = settings.LOGIN_REDIRECT_URL if not success_redirect: success_redirect = '/accounts/profile/' service = request.GET.get('service', None) if request.user.is_authenticated(): if service is not None: ticket = create_service_ticket(request.user, service) if service.find('?') == -1: return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(service + '&ticket=' + ticket.ticket) else: return HttpResponseRedirect(success_redirect) errors = [] if request.method == 'POST': username = request.POST.get('username', None) password = request.POST.get('password', None) service = request.POST.get('service', None) lt = request.POST.get('lt', None) try: login_ticket = LoginTicket.objects.get(ticket=lt) except: errors.append('Login ticket expired. Please try again.') else: login_ticket.delete() user = authenticate(username=username, password=password) if user is not None: if user.is_active: auth_login(request, user) if service is not None: ticket = create_service_ticket(user, service) # Check to see if we already have a query string if service.find('?') == -1: return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(service + '&ticket=' + ticket.ticket) else: return HttpResponseRedirect(success_redirect) else: errors.append('This account is disabled.') else: errors.append('Incorrect username and/or password.') form = LoginForm(service) return render_to_response(template_name, { 'form': form, 'errors': errors }, context_instance=RequestContext(request))
def _login(request, template_name='cas/login.html', success_redirect=settings.LOGIN_REDIRECT_URL): """ Standard CAS login form. Instead of running this directly, we enforce a service whitelist first. See whitelist_login(). """ service = request.GET.get('service', None) # renew=true indicates that we should force the user to log in. if False == request.GET.get('renew', False) and request.user.is_authenticated(): if service is not None: ticket = utils.create_service_ticket(request.user, service) # TODO Parsing and rebuilding the URL here is a much better idea. if service.find('?') == -1: return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(service + '&ticket=' + ticket.ticket) else: return HttpResponseRedirect(success_redirect) # gateway=true indicates that we should silently try to authenticate (no # login screen). if request.GET.get('gateway', False): return HttpResponseRedirect(service) errors = [] if request.method == 'POST': username = request.POST.get('username', None) password = request.POST.get('password', None) service = request.POST.get('service', None) lt = request.POST.get('lt', None) try: login_ticket = LoginTicket.objects.get(ticket=lt) except: errors.append('Login ticket expired. Please try again.') else: login_ticket.delete() user = authenticate(username=username, password=password) if user is not None: if user.is_active: auth_login(request, user) if service is not None: ticket = utils.create_service_ticket(user, service) return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(success_redirect) else: errors.append('This account is disabled.') else: errors.append('Incorrect username and/or password.') form = LoginForm(service) return jingo.render(request, template_name, {'form': form, 'errors': errors})
def login(request, template_name='cas/login.html', success_redirect=None ): if not success_redirect: success_redirect = settings.LOGIN_REDIRECT_URL if not success_redirect: success_redirect = '/accounts/profile/' service = request.GET.get('service', None) if request.user.is_authenticated(): if service is not None: if not auth_handler or auth_handler(request.user, service): ticket = create_service_ticket(request.user, service) if service.find('?') == -1: return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(service + '&ticket=' + ticket.ticket) else: return render_to_response('cas/unauthorized.html', {'service': service}, context_instance=RequestContext(request)) else: return HttpResponseRedirect(success_redirect) errors = [] if request.method == 'POST': username = request.POST.get('username', None) password = request.POST.get('password', None) service = request.POST.get('service', None) lt = request.POST.get('lt', None) try: login_ticket = LoginTicket.objects.get(ticket=lt) except: errors.append('Login ticket expired. Please try again.') else: login_ticket.delete() user = authenticate(username=username, password=password) if user is not None: if user.is_active: auth_login(request, user) if not auth_handler or auth_handler(user, service): if service is not None: ticket = create_service_ticket(user, service) # Check to see if we already have a query string if service.find('?') == -1: return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(service + '&ticket=' + ticket.ticket) else: return HttpResponseRedirect(success_redirect) else: return render_to_response('cas/unauthorized.html', {'service': service}, context_instance=RequestContext(request)) else: errors.append('This account is disabled.') else: errors.append('Incorrect username and/or password.') form = LoginForm(service) return render_to_response(template_name, {'form': form, 'errors': errors}, context_instance=RequestContext(request))
def login(request, template_name="cas/login.html", success_redirect=None): if not success_redirect: success_redirect = settings.LOGIN_REDIRECT_URL if not success_redirect: success_redirect = "/accounts/profile/" service = request.GET.get("service", None) if request.user.is_authenticated(): if service is not None: ticket = create_service_ticket(request.user, service) if service.find("?") == -1: return HttpResponseRedirect(service + "?ticket=" + ticket.ticket) else: return HttpResponseRedirect(service + "&ticket=" + ticket.ticket) else: return HttpResponseRedirect(success_redirect) errors = [] if request.method == "POST": username = request.POST.get("username", None) password = request.POST.get("password", None) service = request.POST.get("service", None) lt = request.POST.get("lt", None) try: login_ticket = LoginTicket.objects.get(ticket=lt) except: errors.append("Login ticket expired. Please try again.") else: login_ticket.delete() user = authenticate(username=username, password=password) if user is not None: if user.is_active: auth_login(request, user) if service is not None: ticket = create_service_ticket(user, service) # Check to see if we already have a query string if service.find("?") == -1: return HttpResponseRedirect(service + "?ticket=" + ticket.ticket) else: return HttpResponseRedirect(service + "&ticket=" + ticket.ticket) else: return HttpResponseRedirect(success_redirect) else: errors.append("This account is disabled.") else: errors.append("Incorrect username and/or password.") form = LoginForm(service) return render_to_response(template_name, {"form": form, "errors": errors}, context_instance=RequestContext(request))
def login(request, template_name='cas_provider/login.html', success_redirect='/accounts/'): service = request.GET.get('service', None) if request.user.is_authenticated(): if service is not None: ticket = create_service_ticket(request.user, service) if service.find('?') == -1: return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(service + '&ticket=' + ticket.ticket) else: return HttpResponseRedirect(success_redirect) errors = [] if request.method == 'POST': username = request.POST.get('username', None) password = request.POST.get('password', None) service = request.POST.get('service', None) lt = request.POST.get('lt', None) try: login_ticket = LoginTicket.objects.get(ticket=lt) except: errors.append('Login ticket expired. Please try again.') else: login_ticket.delete() user = authenticate(username=username, password=password) if user is not None: if user.is_active: auth_login(request, user) if service is not None: ticket = create_service_ticket(user, service) if service.find('?') == -1: return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(service + '&ticket=' + ticket.ticket) else: print success_redirect return HttpResponseRedirect(success_redirect) else: errors.append('This account is disabled.') else: errors.append('Incorrect username and/or password.') form = LoginForm(service) return render_to_response(template_name, {'form': form, 'errors': errors}, context_instance=RequestContext(request))
def _login(request, template_name='cas/login.html', success_redirect=settings.LOGIN_REDIRECT_URL): """ Standard CAS login form. Instead of running this directly, we enforce a service whitelist first. See whitelist_login(). """ service = request.GET.get('service', None) # renew=true indicates that we should force the user to log in. if False == request.GET.get('renew', False) and request.user.is_authenticated(): if service is not None: ticket = utils.create_service_ticket(request.user, service) # TODO Parsing and rebuilding the URL here is a much better idea. if service.find('?') == -1: return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(service + '&ticket=' + ticket.ticket) else: return HttpResponseRedirect(success_redirect) # gateway=true indicates that we should silently try to authenticate (no # login screen). if request.GET.get('gateway', False): return HttpResponseRedirect(service) errors = [] if request.method == 'POST': username = request.POST.get('username', None) password = request.POST.get('password', None) service = request.POST.get('service', None) lt = request.POST.get('lt', None) try: login_ticket = LoginTicket.objects.get(ticket=lt) except: errors.append('Login ticket expired. Please try again.') else: login_ticket.delete() user = authenticate(username=username, password=password) if user is not None: if user.is_active: auth_login(request, user) if service is not None: ticket = utils.create_service_ticket(user, service) return HttpResponseRedirect(service + '?ticket=' + ticket.ticket) else: return HttpResponseRedirect(success_redirect) else: errors.append('This account is disabled.') else: errors.append('Incorrect username and/or password.') form = LoginForm(service) return jingo.render(request, template_name, { 'form': form, 'errors': errors })