45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""
|
|
اسکریپت ساخت اولین کاربر ادمین.
|
|
اجرا: python scripts/create_admin.py
|
|
"""
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
|
|
|
from getpass import getpass
|
|
|
|
from app.database import SessionLocal
|
|
from app.models import AdminUser
|
|
from app.auth import hash_password
|
|
|
|
|
|
def main():
|
|
username = input("نام کاربری ادمین: ").strip()
|
|
password = getpass("رمز عبور: ").strip()
|
|
password2 = getpass("تکرار رمز عبور: ").strip()
|
|
|
|
if not username or not password:
|
|
print("نام کاربری و رمز عبور نمیتوانند خالی باشند.")
|
|
return
|
|
if password != password2:
|
|
print("رمزهای عبور یکسان نیستند.")
|
|
return
|
|
|
|
db = SessionLocal()
|
|
try:
|
|
existing = db.query(AdminUser).filter(AdminUser.username == username).first()
|
|
if existing:
|
|
print(f"کاربری با نام '{username}' از قبل وجود دارد.")
|
|
return
|
|
admin = AdminUser(username=username, hashed_password=hash_password(password))
|
|
db.add(admin)
|
|
db.commit()
|
|
print(f"کاربر ادمین '{username}' با موفقیت ساخته شد.")
|
|
finally:
|
|
db.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|