這將刪除頁面 "nginx - Database Update zum Anlegen einer Acceess list"。請三思而後行。
ACCESSLIST_ID=$(sqlite3 "$DB_PATH" "SELECT id FROM access_list WHERE name='$ACCESSLIST_NAME';")
if [ -z "$ACCESSLIST_ID" ]; then echo "🆕 Erstelle neue Access List: $ACCESSLIST_NAME" NOW=$(date +%s) OWNER_ID=$(sqlite3 "$DB_PATH" "SELECT id FROM user WHERE is_deleted=0 ORDER BY id ASC LIMIT 1;") if [ -z "$OWNER_ID" ]; then
OWNER_ID=1
fi sqlite3 "$DB_PATH" "INSERT INTO access_list (name, satisfy_any, created_on, modified_on, owner_user_id, meta) VALUES ('$ACCESSLIST_NAME', 1, $NOW, $NOW, $OWNER_ID, '{}');" ACCESSLIST_ID=$(sqlite3 "$DB_PATH" "SELECT id FROM access_list WHERE name='$ACCESSLIST_NAME';") else echo "ℹ️ Access List '$ACCESSLIST_NAME' existiert bereits (ID $ACCESSLIST_ID)" fi
HASH=$(docker run --rm jc21/nginx-proxy-manager /usr/bin/htpasswd -nbB "$USERNAME" "$PASSWORD" \ | cut -d: -f2 | tr -d '\r')
if [ -n "$ACCESSLIST_ID" ]; then echo "👤 Füge Benutzer '$USERNAME' hinzu oder aktualisiere..." NOW=$(date +%s) EXISTING_USER=$(sqlite3 "$DB_PATH" "SELECT id FROM access_list_auth WHERE username='$USERNAME' AND access_list_id=$ACCESSLIST_ID;") if [ -n "$EXISTING_USER" ]; then
sqlite3 "$DB_PATH" "UPDATE access_list_auth SET password='$HASH', modified_on=$NOW WHERE id=$EXISTING_USER;"
else
sqlite3 "$DB_PATH" "INSERT INTO access_list_auth (access_list_id, username, password, created_on, modified_on, meta) VALUES ($ACCESSLIST_ID, '$USERNAME', '$HASH', $NOW, $NOW, '{}');"
fi else echo "❌ Konnte keine gültige AccessList-ID ermitteln!" exit 1 fi
COUNT=$(sqlite3 "$DB_PATH" "SELECT COUNT(*) FROM access_list_client WHERE access_list_id=$ACCESSLIST_ID;")
if [ "$COUNT" -eq 0 ]; then echo "🌐 Erstelle Default-Access-Regel (allow all)" NOW=$(date +%s) # Prüfen, ob Spalte 'policy' oder 'directive' existiert POLICY_COL=$(sqlite3 "$DB_PATH" "PRAGMA table_info(access_list_client);" | grep -c "policy") if [ "$POLICY_COL" -gt 0 ]; then
sqlite3 "$DB_PATH" "INSERT INTO access_list_client (access_list_id, address, policy, created_on, modified_on, meta) VALUES ($ACCESSLIST_ID, 'all', 'allow', $NOW, $NOW, '{}');"
else
sqlite3 "$DB_PATH" "INSERT INTO access_list_client (access_list_id, address, directive, created_on, modified_on, meta) VALUES ($ACCESSLIST_ID, 'all', 'allow', $NOW, $NOW, '{}');"
fi fi
if [ -n "$PROXYHOST_ID" ]; then echo "🔗 Verknüpfe Access List mit Proxy Host ID $PROXYHOST_ID" sqlite3 "$DB_PATH" "INSERT INTO access_list_proxy_host (access_list_id, proxy_host_id) VALUES ($ACCESSLIST_ID, $PROXYHOST_ID);" fi
這將刪除頁面 "nginx - Database Update zum Anlegen einer Acceess list"。請三思而後行。