diff --git a/server.py b/server.py index 232c0d91131333819dddfff07cafcc7b3994c682..d2eaf22a9cd34f817653952e167674e92146a9f0 100644 --- a/server.py +++ b/server.py @@ -129,8 +129,8 @@ def authdescr(auths): return 'rwth', 'Nur für RWTH-Angehörige verfügbar' if l2p_courses: if password: - return 'rwth', 'Nur für Teilnehmer der Veranstaltung und Nutzer mit Passwort verfügbar' - return 'rwth', 'Nur für Teilnehmer der Veranstaltung verfügbar' + return 'l2p', 'Nur für Teilnehmer der Veranstaltung und Nutzer mit Passwort verfügbar' + return 'l2p', 'Nur für Teilnehmer der Veranstaltung verfügbar' if password: return 'password', 'Nur für Nutzer mit Passwort verfügbar' return 'public', 'Öffentlich verfügbar' @@ -295,12 +295,22 @@ def lecture(id): WHERE videos.lecture_id = ? AND (? OR videos.visible) ORDER BY formats.prio DESC ''', lecture['course_id'], lecture['id'], ismod()) + auths = query('SELECT auth.* FROM auth WHERE (auth.lecture_id = ? OR auth.course_id = ?)', + lecture['id'], lecture['course_id']) if not videos: flash('Zu dieser Vorlesung wurden noch keine Videos veröffentlicht!') course = query('SELECT * FROM courses WHERE id = ? AND (? OR (visible AND listed))', lecture['course_id'], ismod())[0] if not course: return render_endpoint('course', 'Diese Veranstaltung existiert nicht!'), 404 chapters = query('SELECT * FROM chapters WHERE lecture_id = ? AND NOT deleted AND (? OR visible) ORDER BY time ASC', id, ismod()) + if not checkauth(auths): + mode, text = authdescr(auths) + if mode == 'rwth': + flash(text+'. <a target="_blank" href="'+url_for('start_rwthauth')+'">Hier authorisieren</a>.') + elif mode == 'l2p': + flash(text+'. <a target="_blank" href="'+url_for('start_l2pauth')+'">Hier authorisieren</a>.') + else: + flash(text+'.') return render_template('embed.html' if request.endpoint == 'embed' else 'lecture.html', course=course, lecture=lecture, videos=videos, chapters=chapters) @@ -436,6 +446,7 @@ def auth(): # For use with nginx auth_request AND (? OR (courses.visible AND lectures.visible AND videos.visible)) ORDER BY auth.video_id DESC, auth.lecture_id DESC, auth.course_id DESC''', url, ismod()) + if not videos: return "Not allowed", 403 auth = request.authorization diff --git a/templates/base.html b/templates/base.html index 0ecb0e4c1455c454da14f26b086eebf79d2dd143..d036b5d9435125c32153133958ecdad247c4a633 100644 --- a/templates/base.html +++ b/templates/base.html @@ -106,7 +106,7 @@ <div class="col-xs-12 col-md-offset-{{ page_border }} col-md-{{ 12-(2*page_border) }}"> {% endif %} {% for msg in get_flashed_messages() %} - <div class="hidden-print alert alert-danger" role="alert">{{ msg }}</div> + <div class="hidden-print alert alert-danger" role="alert">{{ msg|safe }}</div> {% endfor %} {% for msg in get_announcements(min_announcement_level) if (not request.cookies['alert-info-'+msg.id|string]) %} <div class="hidden-print alert alert-{{levels.get(msg.level, ('info', ''))[0]}}" role="alert">