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+'. <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! \ 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 = '<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' %}