API - init privacy policy
This commit is contained in:
@ -115,6 +115,7 @@ def register_user() -> Union[Tuple[Dict, int], HttpResponse]:
|
||||
:<json string password: password (8 characters required)
|
||||
:<json string lang: user language preferences (if not provided or invalid,
|
||||
fallback to 'en' (english))
|
||||
:<json boolean accepted_policy: true if user accepted privacy policy
|
||||
|
||||
:statuscode 200: success
|
||||
:statuscode 400:
|
||||
@ -141,8 +142,16 @@ def register_user() -> Union[Tuple[Dict, int], HttpResponse]:
|
||||
or post_data.get('username') is None
|
||||
or post_data.get('email') is None
|
||||
or post_data.get('password') is None
|
||||
or post_data.get('accepted_policy') is None
|
||||
):
|
||||
return InvalidPayloadErrorResponse()
|
||||
|
||||
accepted_policy = post_data.get('accepted_policy') is True
|
||||
if not accepted_policy:
|
||||
return InvalidPayloadErrorResponse(
|
||||
'sorry, you must agree privacy policy to register'
|
||||
)
|
||||
|
||||
username = post_data.get('username')
|
||||
email = post_data.get('email')
|
||||
password = post_data.get('password')
|
||||
@ -176,6 +185,7 @@ def register_user() -> Union[Tuple[Dict, int], HttpResponse]:
|
||||
new_user.date_format = 'MM/dd/yyyy'
|
||||
new_user.confirmation_token = secrets.token_urlsafe(30)
|
||||
new_user.language = language
|
||||
new_user.accepted_policy_date = datetime.datetime.utcnow()
|
||||
db.session.add(new_user)
|
||||
db.session.commit()
|
||||
|
||||
@ -288,6 +298,7 @@ def get_authenticated_user_profile(
|
||||
|
||||
{
|
||||
"data": {
|
||||
"accepted_privacy_policy": "Sat, 25 Fev 2023 13:52:58 GMT",
|
||||
"admin": false,
|
||||
"bio": null,
|
||||
"birth_date": null,
|
||||
|
@ -52,6 +52,7 @@ class User(BaseModel):
|
||||
email_to_confirm = db.Column(db.String(255), nullable=True)
|
||||
confirmation_token = db.Column(db.String(255), nullable=True)
|
||||
display_ascent = db.Column(db.Boolean, default=True, nullable=False)
|
||||
accepted_policy_date = db.Column(db.DateTime, nullable=True)
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f'<User {self.username!r}>'
|
||||
@ -191,6 +192,7 @@ class User(BaseModel):
|
||||
serialized_user = {
|
||||
**serialized_user,
|
||||
**{
|
||||
'accepted_policy_date': self.accepted_policy_date,
|
||||
'date_format': self.date_format,
|
||||
'display_ascent': self.display_ascent,
|
||||
'imperial_units': self.imperial_units,
|
||||
|
Reference in New Issue
Block a user