feat: ✨ SSO
This commit is contained in:
@@ -540,6 +540,16 @@ def init_db(app=None):
|
||||
|
||||
logging.info("Database indexes created successfully")
|
||||
|
||||
cursor.execute('''
|
||||
CREATE TABLE IF NOT EXISTS AppSettings (
|
||||
id INTEGER PRIMARY KEY,
|
||||
is_sso_enabled BOOLEAN DEFAULT FALSE
|
||||
)
|
||||
''')
|
||||
cursor.execute('SELECT id FROM AppSettings WHERE id = 1')
|
||||
if not cursor.fetchone():
|
||||
cursor.execute('INSERT INTO AppSettings (id) VALUES (1)')
|
||||
|
||||
run_v2_migrations(cursor, conn)
|
||||
|
||||
conn.commit()
|
||||
@@ -596,3 +606,24 @@ def run_v2_migrations(cursor, conn):
|
||||
logging.info("Removed orphaned permission: %s", perm_name)
|
||||
|
||||
logging.info("v2 database migrations complete")
|
||||
|
||||
|
||||
def get_app_settings(conn):
|
||||
cursor = conn.cursor(dictionary=True)
|
||||
cursor.execute('SELECT is_sso_enabled FROM AppSettings WHERE id = 1')
|
||||
row = cursor.fetchone()
|
||||
if not row:
|
||||
return {'is_sso_enabled': False}
|
||||
return row
|
||||
|
||||
|
||||
def update_app_settings(conn, **fields):
|
||||
allowed = {'is_sso_enabled'}
|
||||
updates = {k: v for k, v in fields.items() if k in allowed}
|
||||
if not updates:
|
||||
return
|
||||
columns = ', '.join(f'{k} = %s' for k in updates)
|
||||
values = list(updates.values())
|
||||
cursor = conn.cursor()
|
||||
cursor.execute(f'UPDATE AppSettings SET {columns} WHERE id = 1', values)
|
||||
conn.commit()
|
||||
|
||||
Reference in New Issue
Block a user