Fix anonymous access 500 error and add environment variable control
- Fixed dashboard.html template error accessing current_user.username for anonymous users - Added ALLOW_ANONYMOUS_ACCESS environment variable with default true - Enhanced index route logic to properly check config before allowing anonymous access - Added proper environment variable to docker-compose.yml - Anonymous access now works without 500 server errors Fixes issue #2 completely - anonymous access is now functional 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
28
app.py
28
app.py
@@ -42,6 +42,7 @@ app = Flask(__name__,
|
||||
template_folder='templates')
|
||||
app.config['SECRET_KEY'] = os.getenv('SECRET_KEY', 'dev-secret-key-change-in-production')
|
||||
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024 # 16MB max file size
|
||||
app.config['ALLOW_ANONYMOUS_ACCESS'] = os.getenv('ALLOW_ANONYMOUS_ACCESS', 'true').lower() == 'true'
|
||||
|
||||
# Auth0 Configuration
|
||||
app.config['AUTH0_DOMAIN'] = os.getenv('AUTH0_DOMAIN', '')
|
||||
@@ -276,18 +277,23 @@ def index():
|
||||
|
||||
return render_template('dashboard.html', user_settings=user_settings)
|
||||
else:
|
||||
# Anonymous mode - allow browsing with default settings
|
||||
user_settings = {
|
||||
'filter_set': 'no_filter',
|
||||
'communities': [],
|
||||
'experience': {
|
||||
'infinite_scroll': False,
|
||||
'auto_refresh': False,
|
||||
'push_notifications': False,
|
||||
'dark_patterns_opt_in': False
|
||||
# Check if anonymous access is allowed
|
||||
if app.config.get('ALLOW_ANONYMOUS_ACCESS', False):
|
||||
# Anonymous mode - allow browsing with default settings
|
||||
user_settings = {
|
||||
'filter_set': 'no_filter',
|
||||
'communities': [],
|
||||
'experience': {
|
||||
'infinite_scroll': False,
|
||||
'auto_refresh': False,
|
||||
'push_notifications': False,
|
||||
'dark_patterns_opt_in': False
|
||||
}
|
||||
}
|
||||
}
|
||||
return render_template('dashboard.html', user_settings=user_settings, anonymous=True)
|
||||
return render_template('dashboard.html', user_settings=user_settings, anonymous=True)
|
||||
else:
|
||||
# Redirect non-authenticated users to login
|
||||
return redirect(url_for('login'))
|
||||
|
||||
|
||||
@app.route('/feed/<filterset>')
|
||||
|
||||
@@ -40,6 +40,7 @@ services:
|
||||
FLASK_ENV: production
|
||||
DEBUG: "False"
|
||||
SECRET_KEY: ${SECRET_KEY:-change-this-secret-key-in-production}
|
||||
ALLOW_ANONYMOUS_ACCESS: ${ALLOW_ANONYMOUS_ACCESS:-true}
|
||||
|
||||
# Auth0 configuration (optional)
|
||||
AUTH0_DOMAIN: ${AUTH0_DOMAIN:-}
|
||||
|
||||
@@ -30,13 +30,21 @@
|
||||
<div class="user-menu">
|
||||
<div class="user-info">
|
||||
<div class="user-avatar">
|
||||
{% if current_user.profile_picture_url %}
|
||||
<img src="{{ current_user.profile_picture_url }}" alt="Avatar">
|
||||
{% if current_user.is_authenticated %}
|
||||
{% if current_user.profile_picture_url %}
|
||||
<img src="{{ current_user.profile_picture_url }}" alt="Avatar">
|
||||
{% else %}
|
||||
<div class="avatar-placeholder">{{ current_user.username[:2].upper() }}</div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<div class="avatar-placeholder">{{ current_user.username[:2].upper() }}</div>
|
||||
<div class="avatar-placeholder">?</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<span class="username">{{ current_user.username }}</span>
|
||||
{% if current_user.is_authenticated %}
|
||||
<span class="username">{{ current_user.username }}</span>
|
||||
{% else %}
|
||||
<span class="username">Anonymous User</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="user-dropdown">
|
||||
<a href="{{ url_for('settings') }}" class="dropdown-item">⚙️ Settings</a>
|
||||
|
||||
@@ -654,6 +654,10 @@ function sharePost() {
|
||||
}
|
||||
|
||||
function savePost() {
|
||||
// TODO: Implement save post functionality
|
||||
// User can save posts to their profile for later viewing
|
||||
// This needs database backend integration with user_saved_posts table
|
||||
// Same implementation needed as dashboard.html savePost function
|
||||
alert('Save functionality coming soon!');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user