Skip to content
Snippets Groups Projects
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
Branches
No related tags found
No related merge requests found
...@@ -48,6 +48,15 @@ def start_rwthauth(): ...@@ -48,6 +48,15 @@ def start_rwthauth():
session['oauthscope'] = 'rwth' session['oauthscope'] = 'rwth'
return redirect(code['verification_url']+'?q=verify&d='+code['user_code']) 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 @app.before_request
def finish_oauth(): def finish_oauth():
if 'L2P_APIKEY' not in config: if 'L2P_APIKEY' not in config:
...@@ -58,14 +67,14 @@ def finish_oauth(): ...@@ -58,14 +67,14 @@ def finish_oauth():
if token.get('status') != 'ok': if token.get('status') != 'ok':
return return
del session['oauthcode'] del session['oauthcode']
if session['oauthscope'] not in ['l2p', 'rwth', 'moodle']: if session['oauthscope'] not in ['l2p', 'rwth', 'moodle', 'l2pandmoodle']:
return return
session['rwthintern'] = True session['rwthintern'] = True
if session['oauthscope'] == 'l2p': if session['oauthscope'] == 'l2p' or session['oauthscope'] == 'l2pandmoodle':
session['l2p_courses'] = [] session['l2p_courses'] = []
for course in l2pget('viewAllCourseInfo', token['access_token'])['dataSet']: for course in l2pget('viewAllCourseInfo', token['access_token'])['dataSet']:
session['l2p_courses'].append(course['uniqueid']) session['l2p_courses'].append(course['uniqueid'])
elif session['oauthscope'] == 'moodle': if session['oauthscope'] == 'moodle' or session['oauthscope'] == 'l2pandmoodle':
data = moodleget('getmyenrolledcourses', token['access_token']) data = moodleget('getmyenrolledcourses', token['access_token'])
if data and data.get('Data'): if data and data.get('Data'):
session['moodle_courses'] = [] session['moodle_courses'] = []
......
...@@ -329,6 +329,12 @@ def lecture(id, course=None, courseid=None): #pylint: disable=unused-argument,to ...@@ -329,6 +329,12 @@ def lecture(id, course=None, courseid=None): #pylint: disable=unused-argument,to
mode, text = permdescr(perms) mode, text = permdescr(perms)
if mode == 'rwth': if mode == 'rwth':
flash(text+'. <a target="_blank" class="reloadonclose" href="'+url_for('start_rwthauth')+'">Hier authorisieren</a>.', category='player') 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': elif mode == 'l2p':
if 'l2p_courses' in session: if 'l2p_courses' in session:
flash(text+'. Du bist kein Teilnehmer des L2P-Kurses! \ 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 ...@@ -141,11 +141,19 @@ def permdescr(perms): #pylint: disable=too-many-branches,too-many-return-stateme
return 'fsmpi', 'Nur für Fachschaftler verfügbar' return 'fsmpi', 'Nur für Fachschaftler verfügbar'
if l2p_courses: if l2p_courses:
if password: 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' 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' return 'l2p', 'Nur für Teilnehmer der Veranstaltung verfügbar'
if moodle_courses: if moodle_courses:
if password: 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' 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' return 'moodle', 'Nur für Teilnehmer der Veranstaltung verfügbar'
if password: if password:
return 'password', 'Nur für Nutzer mit Passwort verfügbar' return 'password', 'Nur für Nutzer mit Passwort verfügbar'
......
...@@ -377,7 +377,7 @@ $('#embedcodebtn').popover( ...@@ -377,7 +377,7 @@ $('#embedcodebtn').popover(
{% if permdescription[0] == 'l2p' %} {% 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>' %} {% 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 %} {% 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>' %} {% set permlogos = '<span class="fa" aria-hidden="true" style="width: 20px; height: 14px; background-size: cover; background-image: url(\'/static/moodle.png\');"></span>' %}
{% endif %} {% endif %}
{% if permdescription[0] == 'rwth' %} {% if permdescription[0] == 'rwth' %}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment