#93 Create app settings profile if not already exists

This commit is contained in:
Daniel Brendel
2024-01-23 01:45:50 +01:00
parent 15242e88e2
commit 5d68c13d1f
3 changed files with 24 additions and 2 deletions

View File

@@ -38,7 +38,7 @@ class AppModel_Migration {
$this->database->add('history_enable BOOLEAN NOT NULL DEFAULT 1');
$this->database->add('history_name VARCHAR(512) NULL DEFAULT \'History\'');
$this->database->add('enable_media_share BOOLEAN NOT NULL DEFAULT 0');
$this->database->add('cronjob_pw VARCHAR(512) NOT NULL DEFAULT \'' . md5(random_bytes(55) . date('Y-m-d H:i:s')) . '\'');
$this->database->add('cronjob_pw VARCHAR(512) NOT NULL DEFAULT \'\'');
$this->database->add('overlay_alpha VARCHAR(512) NULL');
$this->database->add('smtp_fromname VARCHAR(512) NULL');
$this->database->add('smtp_fromaddress VARCHAR(512) NULL');

View File

@@ -26,6 +26,7 @@ services:
APP_CRON_MAIL_LIMIT: 5
APP_ENABLE_HISTORY: "true"
APP_HISTORY_NAME: "History"
APP_ENABLE_PHOTO_SHARE: "false"
PHOTO_RESIZE_FACTOR_DEFAULT: 1.0
PHOTO_RESIZE_FACTOR_1: 0.5
PHOTO_RESIZE_FACTOR_2: 0.4

View File

@@ -84,7 +84,25 @@ create_environment_file() {
EOF
}
# Function to check if the admin user exists
# Function to check if initial settings were created and add if not
add_initial_settings_if_missing() {
local settings_count=$(mysql -u "$DB_USERNAME" -p"$DB_PASSWORD" -h "$DB_HOST" -D "$DB_DATABASE" -N -s -e "SELECT COUNT(*) FROM AppModel WHERE id=1;")
if [[ $settings_count -gt 0 ]]; then
echo "App settings profile already exists. Skipping creation."
else
echo "App settings profile does not exist. Creating..."
create_app_settings
fi
}
# Function to create initial settings
create_app_settings() {
mysql -u "$DB_USERNAME" -p"$DB_PASSWORD" -h "$DB_HOST" -D "$DB_DATABASE" -e "INSERT INTO AppModel (id, workspace, language, scroller, chat_enable, chat_timelimit, chat_showusers, chat_indicator, history_enable, history_name, enable_media_share, cronjob_pw, overlay_alpha, smtp_fromname, smtp_fromaddress, smtp_host, smtp_port, smtp_username, smtp_password, smtp_encryption, created_at) VALUES (NULL, '$APP_WORKSPACE', '$APP_LANG', $APP_ENABLE_SCROLLER, $APP_ENABLE_CHAT, $APP_ONLINE_MINUTE_LIMIT, $APP_SHOW_CHAT_ONLINE_USERS, $APP_SHOW_CHAT_TYPING_INDICATOR, $APP_ENABLE_HISTORY, '$APP_HISTORY_NAME', $APP_ENABLE_PHOTO_SHARE, '$APP_CRON_PW', $APP_OVERLAY_ALPHA, '$SMTP_FROMNAME', '$SMTP_FROMADDRESS', '$SMTP_HOST', $SMTP_PORT, '$SMTP_USERNAME', '$SMTP_PASSWORD', '$SMTP_ENCRYPTION', CURRENT_TIMESTAMP);"
echo "App settings profile created."
}
# Function to check if the admin user exists and add if not
add_admin_user_if_missing() {
local user_count=$(mysql -u "$DB_USERNAME" -p"$DB_PASSWORD" -h "$DB_HOST" -D "$DB_DATABASE" -N -s -e "SELECT COUNT(*) FROM users WHERE email='$ADMIN_EMAIL';")
if [[ $user_count -gt 0 ]]; then
@@ -153,6 +171,9 @@ else
php asatru migrate:fresh
fi
# Check if app settings profile exists and create it if not.
add_initial_settings_if_missing
# Check if admin user exists and create it if not.
add_admin_user_if_missing