sachin commited on
Commit
a403177
·
1 Parent(s): 26b1877

enable-admnn

Browse files
Files changed (1) hide show
  1. src/server/utils/auth.py +23 -15
src/server/utils/auth.py CHANGED
@@ -27,21 +27,6 @@ Base.metadata.create_all(bind=engine)
27
  # Password hashing
28
  pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
29
 
30
- # Seed initial data (optional)
31
- def seed_initial_data():
32
- db = SessionLocal()
33
- if not db.query(User).filter_by(username="testuser").first():
34
- hashed_password = pwd_context.hash("password123")
35
- db.add(User(username="testuser", password=hashed_password, is_admin=False))
36
- db.commit()
37
- if not db.query(User).filter_by(username="admin").first():
38
- hashed_password = pwd_context.hash("adminpass")
39
- db.add(User(username="admin", password=hashed_password, is_admin=True))
40
- db.commit()
41
- db.close()
42
-
43
- seed_initial_data()
44
-
45
  class Settings(BaseSettings):
46
  api_key_secret: str = Field(..., env="API_KEY_SECRET")
47
  token_expiration_minutes: int = Field(30, env="TOKEN_EXPIRATION_MINUTES")
@@ -55,6 +40,9 @@ class Settings(BaseSettings):
55
  external_asr_url: str = Field(..., env="EXTERNAL_ASR_URL")
56
  external_text_gen_url: str = Field(..., env="EXTERNAL_TEXT_GEN_URL")
57
  external_audio_proc_url: str = Field(..., env="EXTERNAL_AUDIO_PROC_URL")
 
 
 
58
 
59
  class Config:
60
  env_file = ".env"
@@ -63,6 +51,26 @@ class Settings(BaseSettings):
63
  settings = Settings()
64
  logger.info(f"Loaded API_KEY_SECRET at startup: {settings.api_key_secret}")
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  # Use HTTPBearer
67
  bearer_scheme = HTTPBearer()
68
 
 
27
  # Password hashing
28
  pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  class Settings(BaseSettings):
31
  api_key_secret: str = Field(..., env="API_KEY_SECRET")
32
  token_expiration_minutes: int = Field(30, env="TOKEN_EXPIRATION_MINUTES")
 
40
  external_asr_url: str = Field(..., env="EXTERNAL_ASR_URL")
41
  external_text_gen_url: str = Field(..., env="EXTERNAL_TEXT_GEN_URL")
42
  external_audio_proc_url: str = Field(..., env="EXTERNAL_AUDIO_PROC_URL")
43
+ # Admin credentials required from environment variables, no defaults
44
+ default_admin_username: str = Field(..., env="DHWANI_ADMIN_USERNAME")
45
+ default_admin_password: str = Field(..., env="DHWANI_ADMIN_PASSWORD")
46
 
47
  class Config:
48
  env_file = ".env"
 
51
  settings = Settings()
52
  logger.info(f"Loaded API_KEY_SECRET at startup: {settings.api_key_secret}")
53
 
54
+ # Seed initial data (optional)
55
+ def seed_initial_data():
56
+ db = SessionLocal()
57
+ # Seed test user (non-admin)
58
+ if not db.query(User).filter_by(username="testuser").first():
59
+ hashed_password = pwd_context.hash("password123")
60
+ db.add(User(username="testuser", password=hashed_password, is_admin=False))
61
+ db.commit()
62
+ # Seed admin user using environment variables
63
+ admin_username = settings.default_admin_username
64
+ admin_password = settings.default_admin_password
65
+ if not db.query(User).filter_by(username=admin_username).first():
66
+ hashed_password = pwd_context.hash(admin_password)
67
+ db.add(User(username=admin_username, password=hashed_password, is_admin=True))
68
+ db.commit()
69
+ db.close()
70
+ logger.info(f"Seeded initial data: admin user '{admin_username}'")
71
+
72
+ seed_initial_data()
73
+
74
  # Use HTTPBearer
75
  bearer_scheme = HTTPBearer()
76