api.auth.user: improve password hashing
This commit is contained in:
parent
b6e6f1c833
commit
1709290ea9
4 changed files with 10 additions and 8 deletions
|
|
@ -25,6 +25,10 @@ class User(BaseModel):
|
|||
class UserIn(User):
|
||||
password: str | None = None
|
||||
|
||||
def hashPassword(self) -> str | None:
|
||||
pw = self.password
|
||||
return pw and hashPassword(pw) or None
|
||||
|
||||
# password handling, authentication
|
||||
|
||||
pw_hash = PasswordHash.recommended()
|
||||
|
|
|
|||
|
|
@ -56,13 +56,13 @@ class Record:
|
|||
return cls(**self.asDict(flatten=True))
|
||||
|
||||
@staticmethod
|
||||
def prepareData(data):
|
||||
def prepareData(data, obj):
|
||||
return data
|
||||
|
||||
@classmethod
|
||||
def fromObject(cls, obj):
|
||||
inp = obj.model_dump()
|
||||
headValues = [inp.pop(hf) for hf in cls.headFields]
|
||||
data = cls.prepareData(inp)
|
||||
data = cls.prepareData(inp, obj)
|
||||
return cls(*headValues, data=data)
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class Record(shape.Record):
|
|||
return base | super().asDict()
|
||||
|
||||
@staticmethod
|
||||
def prepareData(data):
|
||||
def prepareData(data, obj):
|
||||
data.pop('uid', None)
|
||||
data.pop('timeStamp', None)
|
||||
return data
|
||||
|
|
|
|||
|
|
@ -9,12 +9,10 @@ class User(concept.Concept):
|
|||
prefix = 'user'
|
||||
|
||||
@staticmethod
|
||||
def prepareData(data):
|
||||
from scopes.api.auth.user import hashPassword
|
||||
data = concept.Concept.prepareData(data)
|
||||
def prepareData(data, obj):
|
||||
data = concept.Concept.prepareData(data, obj)
|
||||
pw = data.pop('password', None)
|
||||
if pw:
|
||||
data['pw_hash'] = hashPassword(pw)
|
||||
data['pw_hash'] = obj.hashPassword()
|
||||
return data
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue