Commit ceb80282 authored by Andreas Valder's avatar Andreas Valder
Browse files

Merge branch 'fixbothmoodleandl2pauth' into 'master'

Fix for authentification if both moodle and l2p rooms are available

See merge request !36
parents f46c791c af4dec05
......@@ -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'] = []
......
......@@ -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+'. <a target="_blank" class="reloadonclose" href="'+url_for('start_rwthauth')+'">Hier authorisieren</a>.', 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! \
<a target="_blank" class="reloadonclose" href="'+url_for('start_moodlel2pauth')+'">Kurse aktualisieren</a>.', category='player')
else:
flash(text+'. <a target="_blank" class="reloadonclose" href="'+url_for('start_moodlel2pauth')+'">Hier authorisieren</a>.', category='player')
elif mode == 'l2p':
if 'l2p_courses' in session:
flash(text+'. Du bist kein Teilnehmer des L2P-Kurses! \
......
......@@ -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'
......
......@@ -377,7 +377,7 @@ $('#embedcodebtn').popover(
{% if permdescription[0] == 'l2p' %}
{% set permlogos = '<span class="fa" aria-hidden="true" style="width: 12px; height: 14px; background-size: cover; background-image: url(\'/static/l2p-logo.gif\');"></span>' %}
{% endif %}
{% if permdescription[0] == 'moodle' %}
{% if permdescription[0] == 'moodle' or permdescription[0] == 'l2pandmoodle' %}
{% set permlogos = '<span class="fa" aria-hidden="true" style="width: 20px; height: 14px; background-size: cover; background-image: url(\'/static/moodle.png\');"></span>' %}
{% endif %}
{% if permdescription[0] == 'rwth' %}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment