TeacherBackend   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 8
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 8
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A app_index() 0 2 1
1
from django.contrib.auth.models import User, Permission, Group
2
from opensubmit.models import Course, Grading, GradingScheme, Assignment, SubmissionFile, Submission, TestMachine, StudyProgram
3
from opensubmit import settings
4
from django.contrib.admin.sites import AdminSite
5
from django.contrib.auth.views import redirect_to_login
6
from django.contrib import messages
7
from django.shortcuts import redirect
8
from django.core.exceptions import PermissionDenied
9
10
from .user import UserAdmin
11
from .course import CourseAdmin
12
from .grading import GradingAdmin
13
from .gradingscheme import GradingSchemeAdmin
14
from .assignment import AssignmentAdmin
15
from .submissionfile import SubmissionFileAdmin
16
from .submission import SubmissionAdmin
17
from .studyprogram import StudyProgramAdmin
18
19
def _social_auth_login(self, request, **kwargs):
20
    '''
21
        View function that redirects to social auth login,
22
        in case the user is not logged in.
23
    '''
24
    if request.user.is_authenticated():
25
        if not request.user.is_active or not request.user.is_staff:
26
            raise PermissionDenied()
27
    else:
28
        messages.add_message(request, messages.WARNING, 'Please authenticate first.')
29
        return redirect_to_login(request.get_full_path())
30
31
class TeacherBackend(AdminSite):
32
    site_header = "OpenSubmit"
33
    site_url = settings.MAIN_URL
34
    index_title = "Teacher Backend"
35
    login = _social_auth_login
36
37
    def app_index(self, request, app_label, extra_context=None):
38
        return redirect('teacher:index')
39
40
teacher_backend = TeacherBackend(name="teacher")
41
# Only for admins
42
teacher_backend.register(User, UserAdmin)
43
teacher_backend.register(Permission)
44
teacher_backend.register(Group)
45
teacher_backend.register(TestMachine)
46
# Only for tutors and course owners
47
teacher_backend.register(Grading, GradingAdmin)
48
teacher_backend.register(GradingScheme, GradingSchemeAdmin)
49
teacher_backend.register(Assignment, AssignmentAdmin)
50
teacher_backend.register(SubmissionFile, SubmissionFileAdmin)
51
teacher_backend.register(Submission, SubmissionAdmin)
52
teacher_backend.register(Course, CourseAdmin)
53
teacher_backend.register(StudyProgram, StudyProgramAdmin)
54