forked from apluslms/a-plus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
views.py
63 lines (49 loc) · 2.47 KB
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import urlparse
from django.shortcuts import render_to_response, redirect
from django.template.context import RequestContext
from django.http import HttpResponse
from django.utils import simplejson
from django.contrib.auth.decorators import login_required
from django.contrib.auth.views import login as django_login
from django.conf import settings
from django.contrib.auth import REDIRECT_FIELD_NAME
from course.models import Course, CourseInstance,\
get_visible_open_course_instances
from oauth_provider.decorators import oauth_required
from django.utils.datetime_safe import datetime
def login(request):
"""
This login view is a wrapper for the default login view in Django. This view checks if the user
is already authenticated and if so, it redirects the user straight to the page he/she was
trying to access. If no page is accessed, the user is redirected to default address.
If the user has not yet been authenticated, this view will call the default view in Django.
"""
if request.user.is_authenticated():
# User is authenticated so we'll just redirect. The following checks for the redirect url
# are borrowed from django.contrib.auth.views.login.
redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, '')
netloc = urlparse.urlparse(redirect_to)[1]
# Use default setting if redirect_to is empty
if not redirect_to:
redirect_to = settings.LOGIN_REDIRECT_URL
# Security check -- don't allow redirection to a different host.
elif netloc and netloc != request.get_host():
redirect_to = settings.LOGIN_REDIRECT_URL
return redirect(redirect_to)
return django_login(request, template_name="aaltoplus/login.html")
def home(request):
open_instances = CourseInstance.objects.filter(ending_time__gte=datetime.now())
if request.user.is_authenticated():
instances = get_visible_open_course_instances(
request.user.get_profile())
else:
instances = get_visible_open_course_instances()
context = RequestContext(request, {"instances": instances})
return render_to_response("aaltoplus/home.html", context)
def privacy(request):
context = RequestContext(request)
return render_to_response("aaltoplus/privacy.html", context)
@oauth_required
def verify_credentials(request):
json_str = simplejson.dumps({"screen_name": request.user.username})
return HttpResponse(json_str, content_type="text/plain")