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_FIRST_NAME=${{ secrets.SEED_FIRST_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
|
||||
|
||||
echo "SECRET_KEY is set: $(grep -q 'SECRET_KEY=' .env && echo YES || echo NO)"
|
||||
@@ -161,6 +165,8 @@ jobs:
|
||||
sleep 10
|
||||
echo "Seeding test user..."
|
||||
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
|
||||
if: always() # Runs on success or failure
|
||||
|
||||
@@ -43,22 +43,34 @@ def create_admin_user(email: str, password: str, first_name: str, last_name: str
|
||||
if __name__ == '__main__':
|
||||
print("=== Create Admin User ===\n")
|
||||
|
||||
email = input("Email: ").strip()
|
||||
password = input("Password: ").strip()
|
||||
first_name = input("First name: ").strip()
|
||||
last_name = input("Last name: ").strip()
|
||||
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 not all([email, password, first_name, last_name]):
|
||||
print("Error: All fields are required")
|
||||
sys.exit(1)
|
||||
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()
|
||||
password = input("Password: ").strip()
|
||||
first_name = input("First name: ").strip()
|
||||
last_name = input("Last name: ").strip()
|
||||
|
||||
if not all([email, password, first_name, last_name]):
|
||||
print("Error: All fields are required")
|
||||
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:
|
||||
print("Error: Password must be at least 8 characters")
|
||||
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)
|
||||
else:
|
||||
print("Cancelled")
|
||||
create_admin_user(email, password, first_name, last_name)
|
||||
|
||||
@@ -19,6 +19,10 @@ services:
|
||||
- SEED_PIN=${SEED_PIN}
|
||||
- SEED_FIRST_NAME=${SEED_FIRST_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:
|
||||
- chores-test-app-backend-data:/app/data
|
||||
|
||||
|
||||
Reference in New Issue
Block a user