mirror of
https://github.com/hrfee/jellyfin-accounts.git
synced 2024-11-15 02:40:10 +00:00
Harvey Tindall
e8ad3f98d6
The admin page now has the option to send an invite to an email address. Since there are now two email types (invites and pw resets), the new sections have been added to config.ini, and email_template and email_plaintext have been renamed to email_html and email_text respectively.
58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
import json
|
|
from pathlib import Path
|
|
from flask import Flask, send_from_directory, render_template
|
|
from __main__ import config, app, g
|
|
from __main__ import web_log as log
|
|
|
|
|
|
@app.errorhandler(404)
|
|
def page_not_found(e):
|
|
return render_template('404.html',
|
|
contactMessage=config['ui']['contact_message']), 404
|
|
|
|
|
|
@app.route('/', methods=['GET', 'POST'])
|
|
def admin():
|
|
# return app.send_static_file('admin.html')
|
|
return render_template('admin.html',
|
|
contactMessage='')
|
|
|
|
|
|
@app.route('/<path:path>')
|
|
def static_proxy(path):
|
|
if 'form.html' not in path and 'admin.html' not in path:
|
|
return app.send_static_file(path)
|
|
return render_template('404.html',
|
|
contactMessage=config['ui']['contact_message']), 404
|
|
|
|
from jellyfin_accounts.web_api import checkInvite
|
|
|
|
|
|
@app.route('/invite/<path:path>')
|
|
def inviteProxy(path):
|
|
if checkInvite(path):
|
|
log.info(f'Invite {path} used to request form')
|
|
try:
|
|
with open(config['files']['invites'], 'r') as f:
|
|
invites = json.load(f)
|
|
except (FileNotFoundError, json.decoder.JSONDecodeError):
|
|
invites = {'invites': []}
|
|
for invite in invites['invites']:
|
|
if invite['code'] == path:
|
|
try:
|
|
email = invite['email']
|
|
except KeyError:
|
|
email = ""
|
|
return render_template('form.html',
|
|
contactMessage=config['ui']['contact_message'],
|
|
helpMessage=config['ui']['help_message'],
|
|
successMessage=config['ui']['success_message'],
|
|
jfLink=config['jellyfin']['server'],
|
|
email=email)
|
|
elif 'admin.html' not in path and 'admin.html' not in path:
|
|
return app.send_static_file(path)
|
|
else:
|
|
log.debug('Attempted use of invalid invite')
|
|
return render_template('invalidCode.html',
|
|
contactMessage=config['ui']['contact_message'])
|