from django.conf.urls import patterns from django.conf.urls import url from mama_cas.views import LoginView from mama_cas.views import LogoutView from mama_cas.views import ValidateView from mama_cas.views import ServiceValidateView from mama_cas.views import ProxyValidateView from mama_cas.views import ProxyView from mama_cas.views import WarnView from mama_cas.views import SamlValidateView urlpatterns = patterns('', url(r'^login/?$', LoginView.as_view(), name='cas_login'), url(r'^logout/?$', LogoutView.as_view(), name='cas_logout'), url(r'^validate/?$', ValidateView.as_view(), name='cas_validate'), url(r'^serviceValidate/?$', ServiceValidateView.as_view(), name='cas_service_validate'), url(r'^proxyValidate/?$', ProxyValidateView.as_view(), name='cas_proxy_validate'), url(r'^proxy/?$', ProxyView.as_view(),
(2) CAS server URIs as described in the CAS protocol. """ from django.conf.urls import url from mama_cas.views import LoginView from mama_cas.views import LogoutView from mama_cas.views import ValidateView from mama_cas.views import ServiceValidateView from mama_cas.views import ProxyValidateView from mama_cas.views import ProxyView from mama_cas.views import WarnView from mama_cas.views import SamlValidateView urlpatterns = [ url(r'^login/?$', LoginView.as_view(), name='cas_login'), url(r'^logout/?$', LogoutView.as_view(), name='cas_logout'), url(r'^validate/?$', ValidateView.as_view(), name='cas_validate'), url(r'^serviceValidate/?$', ServiceValidateView.as_view(), name='cas_service_validate'), url(r'^proxyValidate/?$', ProxyValidateView.as_view(), name='cas_proxy_validate'), url(r'^proxy/?$', ProxyView.as_view(), name='cas_proxy'), url(r'^p3/serviceValidate/?$', ServiceValidateView.as_view(), name='cas_p3_service_validate'), url(r'^p3/proxyValidate/?$', ProxyValidateView.as_view(), name='cas_p3_proxy_validate'),
""" (2) CAS server URIs as described in the CAS protocol. """ from django.conf.urls import url from mama_cas.views import LoginView from mama_cas.views import LogoutView from mama_cas.views import ValidateView from mama_cas.views import ServiceValidateView from mama_cas.views import ProxyValidateView from mama_cas.views import ProxyView from mama_cas.views import WarnView from mama_cas.views import SamlValidateView urlpatterns = [ url(r'^login/?$', LoginView.as_view(), name='cas_login'), url(r'^logout/?$', LogoutView.as_view(), name='cas_logout'), url(r'^validate/?$', ValidateView.as_view(), name='cas_validate'), url(r'^serviceValidate/?$', ServiceValidateView.as_view(), name='cas_service_validate'), url(r'^proxyValidate/?$', ProxyValidateView.as_view(), name='cas_proxy_validate'), url(r'^proxy/?$', ProxyView.as_view(), name='cas_proxy'), url(r'^p3/serviceValidate/?$', ServiceValidateView.as_view(), name='cas_p3_service_validate'), url(r'^p3/proxyValidate/?$', ProxyValidateView.as_view(), name='cas_p3_proxy_validate'), url(r'^warn/?$', WarnView.as_view(), name='cas_warn'), url(r'^samlValidate/?$', SamlValidateView.as_view(), name='cas_saml_validate'), ]
def login_view(request): # GET request if request.method == 'GET': if request.user.is_authenticated: service = request.GET.get('service') if service: return LoginView.as_view()(request) return redirect('/home/') else: """ SET USER COOKIE HERE TOO """ # Redirect to Login page return LoginView.as_view()(request) # POST request elif request.method == 'POST': email = request.POST.get('username') password = request.POST.get('password') if request.POST.get('password'): print(email) print(password) return LoginView.as_view()(request) else: # LOGIN WITH EMAIL # Check valid email if re.match(r"[^@]+@[^@]+\.[^@]+", email): url = request.GET.get('service') # Get URL to forward onto confirmEmailHold = None # Create confirmEmailHold object if url: confirmEmailHold = NoPasswordWaitingForEmailConfirm.objects.create( email=email, url=url) else: confirmEmailHold = NoPasswordWaitingForEmailConfirm.objects.create( email=email) """ SEND EMAIL VARIABLES """ # Unique Key key = confirmEmailHold.key clickable_url = 'http://localhost:8080' # Try to send email subject = 'Just one more step!' recipient = email message = "You're almost done.\n" \ + "Click the link below in " + confirmEmailHold.browser + " to activate your account.\n" \ + clickable_url + "/signin/?key=" + str(key) + "\n" \ + "Where is my password?\n" \ + "We doesn't make you remember yet another password. Just click the link and you’re in.\n" \ + "No password. Ever." if send_email(subject, recipient, message): print('EMAIL SENT') confirmEmailHold.email_sent = True # Try to find a user with this email user = None try: user = User.objects.get(email=email) confirmEmailHold.user = user except: # No User found - save without user pass # Save confirmEmailHold confirmEmailHold.save() context = {'email': email} # SET COOKIE response = render(request, 'login_with_email.html', context) response.set_cookie('cookie', value=confirmEmailHold.cookie, domain="localhost") return response else: msg = 'Unable to send email to: ' + email messages.info(request, msg) return render(request, 'login.html') else: msg = 'Invalid Email: ' + email messages.info(request, msg) return render(request, 'login.html')
""" URLconf for CAS server URIs as described in the CAS protocol. """ from django.conf.urls import patterns from django.conf.urls import url from mama_cas.views import LoginView from mama_cas.views import LogoutView from mama_cas.views import ValidateView from mama_cas.views import ServiceValidateView from mama_cas.views import ProxyValidateView from mama_cas.views import ProxyView from mama_cas.views import WarnView urlpatterns = patterns( "", url(r"^login/?$", LoginView.as_view(), name="cas_login"), url(r"^logout/?$", LogoutView.as_view(), name="cas_logout"), url(r"^validate/?$", ValidateView.as_view(), name="cas_validate"), url(r"^serviceValidate/?$", ServiceValidateView.as_view(), name="cas_service_validate"), url(r"^proxyValidate/?$", ProxyValidateView.as_view(), name="cas_proxy_validate"), url(r"^proxy/?$", ProxyView.as_view(), name="cas_proxy"), url(r"^warn/?$", WarnView.as_view(), name="cas_warn"), )
Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url, include from django.contrib import admin from django.contrib.auth import views as auth_views from django.views.generic import TemplateView from mama_cas.views import LoginView from mama_cas.views import LogoutView from views import profilereset urlpatterns = [ url(r'^$', TemplateView.as_view(template_name='iaccount/index.html'), name='index'), url(r'^admin/', admin.site.urls), url(r'^cas/', include('mama_cas.urls')), url(r'^accounts/login/$', LoginView.as_view(), name='auth_login'), url(r'^accounts/logout/$', LogoutView.as_view(), name='auth_logout'), url(r'^accounts/profile/', TemplateView.as_view(template_name='iaccount/profile.html'), name='profile'), url(r'^accounts/profileset/', profilereset, name='profilereset'), url(r'^accounts/', include('registration.backends.default.urls')), url(r'^', include('django.contrib.auth.urls')), url(r'^captcha/', include('captcha.urls')), ]