Missing check oauth

This commit is contained in:
2025-09-27 21:12:45 +02:00
parent 7a5e387665
commit 00b9c170f1
5 changed files with 29 additions and 16 deletions

12
main.py
View File

@@ -52,7 +52,10 @@ if not os.path.exists('static/profile_pics'):
os.makedirs('static/profile_pics') os.makedirs('static/profile_pics')
app.register_blueprint(admin_bp) app.register_blueprint(admin_bp)
app.register_blueprint(discord_bp) try:
app.register_blueprint(discord_bp)
except (NameError, ImportError, RuntimeError, LookupError):
pass
app.register_blueprint(post_bp) app.register_blueprint(post_bp)
app.register_blueprint(log_bp) app.register_blueprint(log_bp)
app.register_blueprint(support_bp) app.register_blueprint(support_bp)
@@ -103,6 +106,13 @@ babel.init_app(app, locale_selector=get_locale)
def needs_admin_setup(): def needs_admin_setup():
return db.session.query(User).filter_by(is_admin=True).count() == 0 return db.session.query(User).filter_by(is_admin=True).count() == 0
@app.context_processor
def inject_discord_available():
try:
from routes.oauth import discord
except ImportError:
return dict(discord=None)
@app.context_processor @app.context_processor
def inject_user(): def inject_user():
return dict(user=current_user if current_user.is_authenticated else None) return dict(user=current_user if current_user.is_authenticated else None)

View File

@@ -6,12 +6,9 @@ from flask_babel import gettext as _
try: try:
from routes.oauth import discord from routes.oauth import discord
except ImportError: except ImportError:
discord = None pass
from routes.login import login_user from routes.login import login_user
if discord is None:
abort("OAuth not configured. Please set up OAuth in routes/oauth.py")
discord_bp = Blueprint('discord', __name__) discord_bp = Blueprint('discord', __name__)
@discord_bp.route('/login/discord') @discord_bp.route('/login/discord')

View File

@@ -22,11 +22,13 @@
<a href="{{ url_for('log.reset_password') }}" class="btn btn-link"><i class="bi bi-key"></i> {{ _('Forgot password?') }}</a> <a href="{{ url_for('log.reset_password') }}" class="btn btn-link"><i class="bi bi-key"></i> {{ _('Forgot password?') }}</a>
</div> </div>
</form> </form>
{% if discord is not none %}
<div class="mt-4 text-center"> <div class="mt-4 text-center">
<a href="{{ url_for('discord.login_discord') }}" class="btn btn-primary"> <a href="{{ url_for('discord.login_discord') }}" class="btn btn-primary">
<i class="bi bi-discord"></i> {{ _('Login with Discord') }} <i class="bi bi-discord"></i> {{ _('Login with Discord') }}
</a> </a>
</div> </div>
{% endif %}
</div> </div>
</div> </div>
</div> </div>

View File

@@ -17,16 +17,18 @@
<form action="{{ url_for('user.delete_account') }}" method="post" style="display:inline;"> <form action="{{ url_for('user.delete_account') }}" method="post" style="display:inline;">
<button class="btn btn-danger"><i class="bi bi-person-x"></i> {{ _('Delete Account') }}</button> <button class="btn btn-danger"><i class="bi bi-person-x"></i> {{ _('Delete Account') }}</button>
</form> </form>
{% if not user.discord_linked %} {% if discord is not none %}
<a href="{{ url_for('discord.link_discord') }}" class="btn btn-primary"> {% if not user.discord_linked %}
<i class="bi bi-discord"></i> {{ _('Link Discord Account') }} <a href="{{ url_for('discord.link_discord') }}" class="btn btn-primary">
</a> <i class="bi bi-discord"></i> {{ _('Link Discord Account') }}
{% else %} </a>
<span class="badge bg-success"><i class="bi bi-discord"></i> {{ _('Discord Linked') }}</span> {% else %}
<form action="{{ url_for('discord.unlink_discord') }}" method="post" style="display:inline;"> <span class="badge bg-success"><i class="bi bi-discord"></i> {{ _('Discord Linked') }}</span>
<button class="btn btn-warning btn-sm" type="submit"> <form action="{{ url_for('discord.unlink_discord') }}" method="post" style="display:inline;">
<i class="bi bi-x-circle"></i> {{ _('Unlink Discord') }} <button class="btn btn-warning btn-sm" type="submit">
</button> <i class="bi bi-x-circle"></i> {{ _('Unlink Discord') }}
</form> </button>
</form>
{% endif %}
{% endif %} {% endif %}
{% endblock %} {% endblock %}

View File

@@ -29,11 +29,13 @@
<span>{{ _('Already have an account?') }}</span> <span>{{ _('Already have an account?') }}</span>
<a href="{{ url_for('log.login') }}" class="btn btn-link"><i class="bi bi-box-arrow-in-right"></i> {{ _('Login') }}</a> <a href="{{ url_for('log.login') }}" class="btn btn-link"><i class="bi bi-box-arrow-in-right"></i> {{ _('Login') }}</a>
</div> </div>
{% if discord is not none %}
<div class="mt-4 text-center"> <div class="mt-4 text-center">
<a href="{{ url_for('discord.login_discord') }}" class="btn btn-primary"> <a href="{{ url_for('discord.login_discord') }}" class="btn btn-primary">
<i class="bi bi-discord"></i> {{ _('Login with Discord') }} <i class="bi bi-discord"></i> {{ _('Login with Discord') }}
</a> </a>
</div> </div>
{% endif %}
</form> </form>
</div> </div>
</div> </div>