New password option fo the tenant adding
Release Inventarsystem / release-docker (push) Successful in 3m22s
Release Inventarsystem / release-docker (push) Successful in 3m22s
This commit is contained in:
+9
-6
@@ -430,6 +430,7 @@ PY
|
|||||||
initialize_tenant_database() {
|
initialize_tenant_database() {
|
||||||
local tenant_id="$1"
|
local tenant_id="$1"
|
||||||
local mode="$2"
|
local mode="$2"
|
||||||
|
local admin_password="${3:-admin123}"
|
||||||
|
|
||||||
APP_CONTAINER=$(docker ps -qf "name=app" | head -n 1)
|
APP_CONTAINER=$(docker ps -qf "name=app" | head -n 1)
|
||||||
if [ -z "$APP_CONTAINER" ]; then
|
if [ -z "$APP_CONTAINER" ]; then
|
||||||
@@ -438,7 +439,7 @@ initialize_tenant_database() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
docker exec -i "$APP_CONTAINER" python3 - "$tenant_id" "$mode" <<'PY'
|
docker exec -i "$APP_CONTAINER" python3 - "$tenant_id" "$mode" "$admin_password" <<'PY'
|
||||||
import sys, os, re, datetime, hashlib
|
import sys, os, re, datetime, hashlib
|
||||||
sys.path.insert(0, "/app")
|
sys.path.insert(0, "/app")
|
||||||
sys.path.insert(0, "/app/Web")
|
sys.path.insert(0, "/app/Web")
|
||||||
@@ -449,6 +450,8 @@ import Web.modules.database.user as us
|
|||||||
|
|
||||||
tenant_id = sys.argv[1].lower()
|
tenant_id = sys.argv[1].lower()
|
||||||
mode = sys.argv[2]
|
mode = sys.argv[2]
|
||||||
|
admin_password = sys.argv[3] if len(sys.argv) > 3 else "admin123"
|
||||||
|
|
||||||
sanitized = "".join(c for c in tenant_id if c.isalnum() or c == "_")
|
sanitized = "".join(c for c in tenant_id if c.isalnum() or c == "_")
|
||||||
db_name = f"inventar_{sanitized}" if sanitized else settings.MONGODB_DB
|
db_name = f"inventar_{sanitized}" if sanitized else settings.MONGODB_DB
|
||||||
|
|
||||||
@@ -458,7 +461,7 @@ users = db["users"]
|
|||||||
permission_defaults = us.build_default_permission_payload("full_access")
|
permission_defaults = us.build_default_permission_payload("full_access")
|
||||||
admin_doc = {
|
admin_doc = {
|
||||||
"Username": "admin",
|
"Username": "admin",
|
||||||
"Password": us.hashing("admin123"),
|
"Password": us.hashing(admin_password),
|
||||||
"Admin": True,
|
"Admin": True,
|
||||||
"active_ausleihung": None,
|
"active_ausleihung": None,
|
||||||
"name": dp.encrypt_text("admin"),
|
"name": dp.encrypt_text("admin"),
|
||||||
@@ -488,7 +491,7 @@ if mode == "trial":
|
|||||||
|
|
||||||
client.close()
|
client.close()
|
||||||
|
|
||||||
print(f"Tenant {sys.argv[1]} database initialized. Default admin: admin / admin123")
|
print(f"Tenant {sys.argv[1]} database initialized. Default admin: admin / {admin_password}")
|
||||||
PY
|
PY
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -813,6 +816,8 @@ case "$COMMAND" in
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
PORT_ARG="${3:-}"
|
PORT_ARG="${3:-}"
|
||||||
|
PASSWORD_ARG="${4:-admin123}" # Optional 4th parameter; defaults to 'admin123' if omitted
|
||||||
|
|
||||||
if [ -n "$PORT_ARG" ]; then
|
if [ -n "$PORT_ARG" ]; then
|
||||||
if ! printf '%s\n' "$PORT_ARG" | grep -qE '^[0-9]+$'; then
|
if ! printf '%s\n' "$PORT_ARG" | grep -qE '^[0-9]+$'; then
|
||||||
echo "Error: Port must be a numeric value."
|
echo "Error: Port must be a numeric value."
|
||||||
@@ -829,11 +834,9 @@ case "$COMMAND" in
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo "Adding new tenant '$TENANT_ID'..."
|
echo "Adding new tenant '$TENANT_ID'..."
|
||||||
echo "Initializing database for $TENANT_ID..."
|
echo "Initializing database for $TENANT_ID..."
|
||||||
initialize_tenant_database "$TENANT_ID" "standard"
|
initialize_tenant_database "$TENANT_ID" "standard" "$PASSWORD_ARG"
|
||||||
echo "Tenant '$TENANT_ID' successfully added. Ready to use."
|
echo "Tenant '$TENANT_ID' successfully added. Ready to use."
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user