1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

Починка админки полностью22223322f2ва

This commit is contained in:
MoonTestUse1
2025-01-01 23:50:15 +06:00
parent b2395ad252
commit d3a6440844
3 changed files with 55 additions and 20 deletions

View File

@@ -0,0 +1,19 @@
"""Employee schemas"""
from pydantic import BaseModel
from datetime import datetime
class EmployeeBase(BaseModel):
first_name: str
last_name: str
department: str
office: str
class EmployeeCreate(EmployeeBase):
password: str
class Employee(EmployeeBase):
id: int
created_at: datetime
class Config:
from_attributes = True

View File

@@ -7,18 +7,20 @@ sys.path.append(str(Path(__file__).resolve().parents[1]))
from app.database import SessionLocal from app.database import SessionLocal
from app.crud import employees from app.crud import employees
from app.models.employee import EmployeeCreate from app.schemas.employee import EmployeeCreate
from app.utils.auth import get_password_hash
def add_employee(): def add_employee():
"""Add a new employee to the database"""
db = SessionLocal() db = SessionLocal()
try: try:
# Create employee data # Create employee data
employee = EmployeeCreate( employee = EmployeeCreate(
first_name="", # Имя не указано в требованиях first_name="Сотрудник",
last_name="Лесников", last_name="Лесников",
department="general", # Общий отдел department="general",
office="101", office="101",
password="1111" password="111111"
) )
# Check if employee already exists # Check if employee already exists
@@ -27,13 +29,17 @@ def add_employee():
print(f"Сотрудник {employee.last_name} уже существует") print(f"Сотрудник {employee.last_name} уже существует")
return return
# Hash password before saving
employee_dict = employee.model_dump()
employee_dict["password"] = get_password_hash(employee_dict["password"])
# Create new employee # Create new employee
db_employee = employees.create_employee(db, employee) db_employee = employees.create_employee(db, employee_dict)
print(f"Создан сотрудник: {db_employee.last_name} (ID: {db_employee.id})") print(f"Создан сотрудник: {db_employee.last_name} (ID: {db_employee.id})")
except Exception as e: except Exception as e:
print(f"Ошибка при создании сотрудника: {e}") print(f"Ошибка при создании сотрудника: {e}")
raise e raise
finally: finally:
db.close() db.close()

View File

@@ -1,31 +1,41 @@
"""Database initialization script that runs on container startup""" """Database initialization script"""
import sys import sys
from pathlib import Path from pathlib import Path
# Add the parent directory to sys.path
sys.path.append(str(Path(__file__).resolve().parents[1])) sys.path.append(str(Path(__file__).resolve().parents[1]))
from app.database import SessionLocal from app.database import SessionLocal
from app.crud import employees from app.crud import employees
from app.models.employee import EmployeeCreate from app.schemas.employee import EmployeeCreate
from app.utils.auth import get_password_hash
def init_db(): def init_db():
"""Initialize database with default data"""
db = SessionLocal() db = SessionLocal()
try: try:
# Create default employee with valid password (min 6 chars) # Create default admin employee
employee = EmployeeCreate( employee = EmployeeCreate(
first_name="Сотрудник", first_name="Admin",
last_name="Лесников", last_name="Admin",
department="general", department="IT",
office="101", office="101",
password="111111" # Changed to meet 6 character minimum password="admin66"
) )
existing = employees.get_employee_by_lastname(db, employee.last_name) # Check if admin already exists
if not existing: existing_employee = employees.get_employee_by_lastname(db, employee.last_name)
employees.create_employee(db, employee) if existing_employee:
print("Default employee created successfully") print("Admin already exists")
else: return
print("Default employee already exists")
# Hash password before saving
employee_dict = employee.model_dump()
employee_dict["password"] = get_password_hash(employee_dict["password"])
# Create admin
db_employee = employees.create_employee(db, employee_dict)
print(f"Created admin employee with ID: {db_employee.id}")
except Exception as e: except Exception as e:
print(f"Error initializing database: {e}") print(f"Error initializing database: {e}")