Skip to content

Commit 51f3608

Browse files
permission fixes
1 parent bc89db5 commit 51f3608

File tree

2 files changed

+382
-62
lines changed

2 files changed

+382
-62
lines changed

app/__init__.py

Lines changed: 43 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -281,27 +281,54 @@ def inject_user_date_format():
281281
app.register_blueprint(main)
282282

283283
with app.app_context():
284+
# Check database write permissions before proceeding
285+
try:
286+
from sqlalchemy import text
287+
# Test database connectivity and write permissions
288+
with db.engine.connect() as conn:
289+
# Try a simple write operation to test permissions
290+
conn.execute(text('CREATE TABLE IF NOT EXISTS permission_test (id INTEGER)'))
291+
conn.execute(text('DROP TABLE IF EXISTS permission_test'))
292+
conn.commit()
293+
print("✅ Database write permissions verified")
294+
except Exception as e:
295+
print(f"❌ Database permission error: {e}")
296+
print("🔧 Please check database file permissions:")
297+
print(" - sudo chown -R 1000:1000 ./data")
298+
print(" - chmod 755 ./data")
299+
print(" - chmod 664 ./data/subscriptions.db (if exists)")
300+
# Don't exit, continue trying to initialize
301+
284302
# Run automatic database migrations before creating tables
285303
migrate_database()
286304

287-
db.create_all()
305+
try:
306+
db.create_all()
307+
print("✅ Database tables created/verified")
308+
except Exception as e:
309+
print(f"❌ Failed to create database tables: {e}")
310+
raise
288311

289312
# Create default admin user if no admin users exist
290-
from app.models import User, UserSettings
291-
admin_exists = User.query.filter_by(is_admin=True).first()
292-
if not admin_exists:
293-
default_user = User(username='admin', email='[email protected]', is_admin=True)
294-
default_user.set_password('changeme')
295-
db.session.add(default_user)
296-
db.session.commit()
297-
298-
# Create default settings for admin user
299-
admin_settings = UserSettings(user_id=default_user.id, date_format='eu')
300-
db.session.add(admin_settings)
301-
db.session.commit()
302-
303-
print("Default admin user created: username='admin', password='changeme'")
304-
print("Please change the default password immediately!")
313+
try:
314+
from app.models import User, UserSettings
315+
admin_exists = User.query.filter_by(is_admin=True).first()
316+
if not admin_exists:
317+
default_user = User(username='admin', email='[email protected]', is_admin=True)
318+
default_user.set_password('changeme')
319+
db.session.add(default_user)
320+
db.session.commit()
321+
322+
# Create default settings for admin user
323+
admin_settings = UserSettings(user_id=default_user.id, date_format='eu')
324+
db.session.add(admin_settings)
325+
db.session.commit()
326+
327+
print("✅ Default admin user created: username='admin', password='changeme'")
328+
print("⚠️ Please change the default password immediately!")
329+
except Exception as e:
330+
print(f"❌ Failed to create default admin user: {e}")
331+
# This is not critical, continue running
305332

306333
# Lazy scheduler + perf timer combined (Flask 3 removed before_first_request)
307334
@app.before_request

0 commit comments

Comments
 (0)