v1.4: group folder/photo limits and ad banners
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+28
-1
@@ -30,6 +30,8 @@ def ensure_schema():
|
||||
|
||||
def ensure_default_group(app):
|
||||
default_quota = int(os.getenv("DEFAULT_GROUP_QUOTA_MB", "100"))
|
||||
default_max_folders = int(os.getenv("DEFAULT_GROUP_MAX_FOLDERS", "10"))
|
||||
default_max_photos = int(os.getenv("DEFAULT_GROUP_MAX_PHOTOS", "500"))
|
||||
default_group = UserGroup.query.filter_by(is_default=True).first()
|
||||
|
||||
if not default_group:
|
||||
@@ -41,16 +43,41 @@ def ensure_default_group(app):
|
||||
name="Пользователи",
|
||||
slug="users",
|
||||
disk_quota_mb=default_quota,
|
||||
max_folders=default_max_folders,
|
||||
max_photos=default_max_photos,
|
||||
is_default=True,
|
||||
)
|
||||
db.session.add(default_group)
|
||||
db.session.commit()
|
||||
app.logger.info("Default user group 'users' created with %s MB quota", default_quota)
|
||||
app.logger.info(
|
||||
"Default user group 'users' created (quota=%s MB, folders=%s, photos=%s)",
|
||||
default_quota,
|
||||
default_max_folders,
|
||||
default_max_photos,
|
||||
)
|
||||
|
||||
User.query.filter(User.group_id.is_(None)).update({"group_id": default_group.id})
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def ensure_group_limit_columns():
|
||||
inspector = inspect(db.engine)
|
||||
if "user_groups" not in inspector.get_table_names():
|
||||
return
|
||||
|
||||
columns = {col["name"] for col in inspector.get_columns("user_groups")}
|
||||
if "max_folders" not in columns:
|
||||
db.session.execute(
|
||||
text("ALTER TABLE user_groups ADD COLUMN max_folders INTEGER NOT NULL DEFAULT 10")
|
||||
)
|
||||
db.session.commit()
|
||||
if "max_photos" not in columns:
|
||||
db.session.execute(
|
||||
text("ALTER TABLE user_groups ADD COLUMN max_photos INTEGER NOT NULL DEFAULT 500")
|
||||
)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def ensure_site_settings(app):
|
||||
from app.models import SiteSettings
|
||||
|
||||
|
||||
Reference in New Issue
Block a user