tests
This commit is contained in:
@@ -87,19 +87,19 @@ async def update_user(email:str, updated_row: pydentic.UserUpdate, current_user:
|
||||
changed = True
|
||||
# пароль
|
||||
if updated_row.password:
|
||||
if not verify_password(updated_row.password, user.password):
|
||||
if not db.verify_password(updated_row.password, user.password):
|
||||
user.password = updated_row.password
|
||||
changed = True
|
||||
# права (только для админа)
|
||||
if current_perms.is_admin:
|
||||
perm_fields = ["can_edit", "can_delete", "can_view", "is_admin"]
|
||||
perm_fields = ["can_edit", "can_delete", "can_view"]
|
||||
for field in perm_fields:
|
||||
new_value = getattr(updated_row, field)
|
||||
if new_value is not None and new_value != getattr(perm, field):
|
||||
setattr(perm, field, new_value)
|
||||
changed = True
|
||||
if changed:
|
||||
user = await db.update_user(user_info=user, perm_info=perm)
|
||||
user = await db.update_user(email = email, user_info=user, perm_info=perm)
|
||||
return user
|
||||
@api.post("/login")
|
||||
async def login_user(form_data: OAuth2PasswordRequestForm = Depends()):
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
from pydantic import BaseModel, Field, EmailStr, constr,validator
|
||||
from pydantic import BaseModel, Field, EmailStr, constr, field_validator
|
||||
from typing import List, Optional
|
||||
from enum import IntEnum
|
||||
|
||||
@@ -22,7 +22,7 @@ class UsersInfo(BaseModel):
|
||||
description: str = Field(..., description="description of the user")
|
||||
activated:bool = Field(..., description="Has the user activated their account")
|
||||
password:constr(min_length=8) = Field(..., description="Password with min 8 chars, letters and digits")
|
||||
@validator('password')
|
||||
@field_validator('password')
|
||||
def password_validator(cls, password):
|
||||
return check_password_complexity(cls, password)
|
||||
class CreateUser(UsersInfo):
|
||||
@@ -34,8 +34,8 @@ class UserUpdate(BaseModel):
|
||||
password:Optional[constr(min_length=8)] = Field(None, description="Password with min 8 chars, letters and digits")
|
||||
can_edit:Optional[bool] = Field(None, description="The user can edit something")
|
||||
can_delete:Optional[bool] = Field(None, description="The user can delete something")
|
||||
can_view:Optional[bool]=Field(None, descriptiopn="The user can view something")
|
||||
@validator('password')
|
||||
can_view:Optional[bool]=Field(None, description="The user can view something")
|
||||
@field_validator('password')
|
||||
def password_validator(cls, password):
|
||||
return check_password_complexity(cls, password)
|
||||
class UserLogin(BaseModel):
|
||||
@@ -44,7 +44,7 @@ class UserLogin(BaseModel):
|
||||
class UserReset(BaseModel):
|
||||
email:EmailStr = Field(..., min_length=6, max_length=254, description="user's email")
|
||||
new_password:constr(min_length=8) = Field(None,description="New_password")
|
||||
@validator('new_password')
|
||||
@field_validator('new_password')
|
||||
def password_validator(cls, new_password):
|
||||
return check_password_complexity(cls, new_password)
|
||||
class UserOut(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user