diff --git a/l2pauth.py b/l2pauth.py
index 39c0ebf6ce5a488e3606b527321cf6931bcf99c4..a643c82ed5c9c10be494bdd159628e076e9ec772 100644
--- a/l2pauth.py
+++ b/l2pauth.py
@@ -48,6 +48,15 @@ def start_rwthauth():
session['oauthscope'] = 'rwth'
return redirect(code['verification_url']+'?q=verify&d='+code['user_code'])
+@app.route('/internal/moodlel2pauth')
+def start_moodlel2pauth():
+ if 'L2P_APIKEY' not in config:
+ return render_template("500.html"), 500
+ code = oauthget('code', scope='moodle.rwth l2p2013.rwth')
+ session['oauthcode'] = code['device_code']
+ session['oauthscope'] = 'l2pandmoodle'
+ return redirect(code['verification_url']+'?q=verify&d='+code['user_code'])
+
@app.before_request
def finish_oauth():
if 'L2P_APIKEY' not in config:
@@ -58,14 +67,14 @@ def finish_oauth():
if token.get('status') != 'ok':
return
del session['oauthcode']
- if session['oauthscope'] not in ['l2p', 'rwth', 'moodle']:
+ if session['oauthscope'] not in ['l2p', 'rwth', 'moodle', 'l2pandmoodle']:
return
session['rwthintern'] = True
- if session['oauthscope'] == 'l2p':
+ if session['oauthscope'] == 'l2p' or session['oauthscope'] == 'l2pandmoodle':
session['l2p_courses'] = []
for course in l2pget('viewAllCourseInfo', token['access_token'])['dataSet']:
session['l2p_courses'].append(course['uniqueid'])
- elif session['oauthscope'] == 'moodle':
+ if session['oauthscope'] == 'moodle' or session['oauthscope'] == 'l2pandmoodle':
data = moodleget('getmyenrolledcourses', token['access_token'])
if data and data.get('Data'):
session['moodle_courses'] = []
diff --git a/server.py b/server.py
index 44be9b9167f5320ecbda3e500646031c74b4e2b0..6f5d472928f3bb92de31945bf13a21ff07026a9e 100644
--- a/server.py
+++ b/server.py
@@ -329,6 +329,12 @@ def lecture(id, course=None, courseid=None): #pylint: disable=unused-argument,to
mode, text = permdescr(perms)
if mode == 'rwth':
flash(text+'. Hier authorisieren.', category='player')
+ elif mode == 'l2pandmoodle':
+ if 'l2p_courses' in session or 'moodle_courses' in session:
+ flash(text+'. Du bist kein Teilnehmer des L2P oder Moodle-Kurses! \
+ Kurse aktualisieren.', category='player')
+ else:
+ flash(text+'. Hier authorisieren.', category='player')
elif mode == 'l2p':
if 'l2p_courses' in session:
flash(text+'. Du bist kein Teilnehmer des L2P-Kurses! \
diff --git a/template_helper.py b/template_helper.py
index 281352d2aff01f17321109aa3ea9851bc168d748..663fead5f4de58fd8667114082c31ed87e1bef9d 100644
--- a/template_helper.py
+++ b/template_helper.py
@@ -141,11 +141,19 @@ def permdescr(perms): #pylint: disable=too-many-branches,too-many-return-stateme
return 'fsmpi', 'Nur für Fachschaftler verfügbar'
if l2p_courses:
if password:
+ if moodle_courses:
+ return 'l2pandmoodle', 'Nur für Teilnehmer der Veranstaltung und Nutzer mit Passwort verfügbar'
return 'l2p', 'Nur für Teilnehmer der Veranstaltung und Nutzer mit Passwort verfügbar'
+ if moodle_courses:
+ return 'l2pandmoodle', 'Nur für Teilnehmer der Veranstaltung verfügbar'
return 'l2p', 'Nur für Teilnehmer der Veranstaltung verfügbar'
if moodle_courses:
if password:
+ if l2p_courses:
+ return 'l2pandmoodle', 'Nur für Teilnehmer der Veranstaltung und Nutzer mit Passwort verfügbar'
return 'moodle', 'Nur für Teilnehmer der Veranstaltung und Nutzer mit Passwort verfügbar'
+ if l2p_courses:
+ return 'l2pandmoodle', 'Nur für Teilnehmer der Veranstaltung verfügbar'
return 'moodle', 'Nur für Teilnehmer der Veranstaltung verfügbar'
if password:
return 'password', 'Nur für Nutzer mit Passwort verfügbar'
diff --git a/templates/macros.html b/templates/macros.html
index bf28145d1d983f0ce63b7158ec1de312cf99bc29..c442d9db6b5ade8e5ed4e5fd5c16db9ff25491d7 100644
--- a/templates/macros.html
+++ b/templates/macros.html
@@ -377,7 +377,7 @@ $('#embedcodebtn').popover(
{% if permdescription[0] == 'l2p' %}
{% set permlogos = '' %}
{% endif %}
- {% if permdescription[0] == 'moodle' %}
+ {% if permdescription[0] == 'moodle' or permdescription[0] == 'l2pandmoodle' %}
{% set permlogos = '' %}
{% endif %}
{% if permdescription[0] == 'rwth' %}