Commit af4dec05 authored by Roman Karwacik's avatar Roman Karwacik Committed by Andreas Valder
Browse files

Fix for authentification if both moodle and l2p rooms are available

parent f46c791c
......@@ -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