Create admin via API after server starts
This commit is contained in:
+8
-24
@@ -9,7 +9,6 @@ for i in $(seq 1 60); do
|
|||||||
mysqladmin ping -h localhost --silent 2>/dev/null && break || sleep 1
|
mysqladmin ping -h localhost --silent 2>/dev/null && break || sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
# Get environment variables
|
|
||||||
DB_NAME="${DB_NAME:-hospital}"
|
DB_NAME="${DB_NAME:-hospital}"
|
||||||
DB_USER="${DB_USER:-hospital}"
|
DB_USER="${DB_USER:-hospital}"
|
||||||
DB_PASSWORD="${DB_PASSWORD:-hospital123}"
|
DB_PASSWORD="${DB_PASSWORD:-hospital123}"
|
||||||
@@ -24,42 +23,27 @@ mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@
|
|||||||
mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'%';"
|
mysql -h localhost -u root -e "GRANT ALL PRIVILEGES ON $DB_NAME.* TO '$DB_USER'@'%';"
|
||||||
mysql -h localhost -u root -e "FLUSH PRIVILEGES;"
|
mysql -h localhost -u root -e "FLUSH PRIVILEGES;"
|
||||||
|
|
||||||
# Create admin user
|
|
||||||
ADMIN_DNI="${ADMIN_DNI:-00000000}"
|
ADMIN_DNI="${ADMIN_DNI:-00000000}"
|
||||||
ADMIN_PASSWORD="${ADMIN_PASSWORD:-Admin123!}"
|
ADMIN_PASSWORD="${ADMIN_PASSWORD:-Admin123!}"
|
||||||
|
|
||||||
echo "Checking admin user..."
|
echo "Starting nginx..."
|
||||||
TABLE_EXISTS=$(mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -N -e "SHOW TABLES LIKE 'usuarios';" 2>/dev/null || echo "")
|
nginx &
|
||||||
|
|
||||||
if [ -n "$TABLE_EXISTS" ]; then
|
echo "Waiting for API server..."
|
||||||
USER_COUNT=$(mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -N -e "SELECT COUNT(*) FROM usuarios WHERE dni='$ADMIN_DNI';" 2>/dev/null || echo "0")
|
sleep 3
|
||||||
if [ "$USER_COUNT" = "0" ]; then
|
|
||||||
ADMIN_ID=$(cat /proc/sys/kernel/random/uuid)
|
|
||||||
TODAY=$(date +%Y-%m-%d)
|
|
||||||
|
|
||||||
# Insert user with empty password hash - needs password change
|
echo "Creating admin user via API..."
|
||||||
mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e "
|
curl -s -X POST "http://localhost:4000/api/usuarios" \
|
||||||
INSERT INTO usuarios (id,apellido,nombre,dni,fechaNacimiento,email,rol,passwordHash,fechaCreacion)
|
|
||||||
VALUES ('$ADMIN_ID','Administrador','Sistema','$ADMIN_DNI','$TODAY','admin@hospital.local','admin','','$TODAY');
|
|
||||||
"
|
|
||||||
|
|
||||||
# Use change-password API to set password
|
|
||||||
curl -s -X POST "http://localhost:4000/api/auth/change-password" \
|
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-d "{\"dni\":\"$ADMIN_DNI\",\"oldPassword\":\"\",\"newPassword\":\"$ADMIN_PASSWORD\"}" 2>/dev/null || true
|
-d "{\"apellido\":\"Administrador\",\"nombre\":\"Sistema\",\"dni\":\"$ADMIN_DNI\",\"fechaNacimiento\":\"2024-01-01\",\"email\":\"admin@hospital.local\",\"rol\":\"admin\",\"password\":\"$ADMIN_PASSWORD\"}" \
|
||||||
|
|| echo "Admin user may already exist"
|
||||||
|
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
echo "ADMIN CREDENTIALS:"
|
echo "ADMIN CREDENTIALS:"
|
||||||
echo "DNI: $ADMIN_DNI"
|
echo "DNI: $ADMIN_DNI"
|
||||||
echo "Password: $ADMIN_PASSWORD"
|
echo "Password: $ADMIN_PASSWORD"
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Starting nginx..."
|
|
||||||
nginx &
|
|
||||||
|
|
||||||
echo "Starting API server..."
|
|
||||||
exec node server/api-mariadb.js
|
exec node server/api-mariadb.js
|
||||||
mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e "INSERT INTO usuarios (id,apellido,nombre,dni,fechaNacimiento,email,rol,passwordHash,fechaCreacion) VALUES ('$ADMIN_ID','Administrador','Sistema','$ADMIN_DNI','$TODAY','admin@hospital.local','admin','$HASH','$TODAY');"
|
mysql -h localhost -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" -e "INSERT INTO usuarios (id,apellido,nombre,dni,fechaNacimiento,email,rol,passwordHash,fechaCreacion) VALUES ('$ADMIN_ID','Administrador','Sistema','$ADMIN_DNI','$TODAY','admin@hospital.local','admin','$HASH','$TODAY');"
|
||||||
echo "=========================================="
|
echo "=========================================="
|
||||||
|
|||||||
Reference in New Issue
Block a user