feat: add environment variable support for admin user creation in backend
All checks were successful
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 2m31s
All checks were successful
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 2m31s
This commit is contained in:
@@ -147,6 +147,10 @@ jobs:
|
|||||||
SEED_PIN=${{ secrets.SEED_PIN }}
|
SEED_PIN=${{ secrets.SEED_PIN }}
|
||||||
SEED_FIRST_NAME=${{ secrets.SEED_FIRST_NAME }}
|
SEED_FIRST_NAME=${{ secrets.SEED_FIRST_NAME }}
|
||||||
SEED_LAST_NAME=${{ secrets.SEED_LAST_NAME }}
|
SEED_LAST_NAME=${{ secrets.SEED_LAST_NAME }}
|
||||||
|
ADMIN_EMAIL=${{ secrets.ADMIN_EMAIL }}
|
||||||
|
ADMIN_PASSWORD=${{ secrets.ADMIN_PASSWORD }}
|
||||||
|
ADMIN_FIRST_NAME=${{ secrets.ADMIN_FIRST_NAME }}
|
||||||
|
ADMIN_LAST_NAME=${{ secrets.ADMIN_LAST_NAME }}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
echo "SECRET_KEY is set: $(grep -q 'SECRET_KEY=' .env && echo YES || echo NO)"
|
echo "SECRET_KEY is set: $(grep -q 'SECRET_KEY=' .env && echo YES || echo NO)"
|
||||||
@@ -161,6 +165,8 @@ jobs:
|
|||||||
sleep 10
|
sleep 10
|
||||||
echo "Seeding test user..."
|
echo "Seeding test user..."
|
||||||
docker-compose -f docker-compose.test.yml exec -T chores-test-app-backend python scripts/seed_test_user.py
|
docker-compose -f docker-compose.test.yml exec -T chores-test-app-backend python scripts/seed_test_user.py
|
||||||
|
echo "Creating admin user..."
|
||||||
|
docker-compose -f docker-compose.test.yml exec -T chores-test-app-backend python scripts/create_admin.py
|
||||||
|
|
||||||
- name: Send mail
|
- name: Send mail
|
||||||
if: always() # Runs on success or failure
|
if: always() # Runs on success or failure
|
||||||
|
|||||||
@@ -43,6 +43,18 @@ def create_admin_user(email: str, password: str, first_name: str, last_name: str
|
|||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print("=== Create Admin User ===\n")
|
print("=== Create Admin User ===\n")
|
||||||
|
|
||||||
|
env_email = os.environ.get('ADMIN_EMAIL')
|
||||||
|
env_password = os.environ.get('ADMIN_PASSWORD')
|
||||||
|
env_first_name = os.environ.get('ADMIN_FIRST_NAME')
|
||||||
|
env_last_name = os.environ.get('ADMIN_LAST_NAME')
|
||||||
|
|
||||||
|
if env_email and env_password:
|
||||||
|
email = env_email
|
||||||
|
password = env_password
|
||||||
|
first_name = env_first_name or 'First Name'
|
||||||
|
last_name = env_last_name or 'Last Name'
|
||||||
|
print(f"Using environment variables for admin user '{email}'")
|
||||||
|
else:
|
||||||
email = input("Email: ").strip()
|
email = input("Email: ").strip()
|
||||||
password = input("Password: ").strip()
|
password = input("Password: ").strip()
|
||||||
first_name = input("First name: ").strip()
|
first_name = input("First name: ").strip()
|
||||||
@@ -52,13 +64,13 @@ if __name__ == '__main__':
|
|||||||
print("Error: All fields are required")
|
print("Error: All fields are required")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
confirm = input(f"\nCreate admin user '{email}'? (yes/no): ").strip().lower()
|
||||||
|
if confirm != 'yes':
|
||||||
|
print("Cancelled")
|
||||||
|
sys.exit(0)
|
||||||
|
|
||||||
if len(password) < 8:
|
if len(password) < 8:
|
||||||
print("Error: Password must be at least 8 characters")
|
print("Error: Password must be at least 8 characters")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
confirm = input(f"\nCreate admin user '{email}'? (yes/no): ").strip().lower()
|
|
||||||
|
|
||||||
if confirm == 'yes':
|
|
||||||
create_admin_user(email, password, first_name, last_name)
|
create_admin_user(email, password, first_name, last_name)
|
||||||
else:
|
|
||||||
print("Cancelled")
|
|
||||||
|
|||||||
@@ -19,6 +19,10 @@ services:
|
|||||||
- SEED_PIN=${SEED_PIN}
|
- SEED_PIN=${SEED_PIN}
|
||||||
- SEED_FIRST_NAME=${SEED_FIRST_NAME}
|
- SEED_FIRST_NAME=${SEED_FIRST_NAME}
|
||||||
- SEED_LAST_NAME=${SEED_LAST_NAME}
|
- SEED_LAST_NAME=${SEED_LAST_NAME}
|
||||||
|
- ADMIN_EMAIL=${ADMIN_EMAIL}
|
||||||
|
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
|
||||||
|
- ADMIN_FIRST_NAME=${ADMIN_FIRST_NAME}
|
||||||
|
- ADMIN_LAST_NAME=${ADMIN_LAST_NAME}
|
||||||
volumes:
|
volumes:
|
||||||
- chores-test-app-backend-data:/app/data
|
- chores-test-app-backend-data:/app/data
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user