mirror of
https://github.com/wassname/Open-Assistant.git
synced 2026-08-20 12:00:32 +08:00
Add terms of service acceptance date to user table (#1046)
* add tos_acceptance_date column to user * send 451 UNAVAILABLE_FOR_LEGAL_REASONS status * add create user REST endpoint * adapt text-frontend to ToS requirements * set DEBUG_IGNORE_TOS_ACCEPTANCE default to True (temporary change) * update down revision to f60958968ff8
This commit is contained in:
@@ -59,6 +59,37 @@ def query_frontend_user(
|
||||
return user.to_protocol_frontend_user()
|
||||
|
||||
|
||||
@router.post("/", response_model=protocol.FrontEndUser)
|
||||
def create_frontend_user(
|
||||
*,
|
||||
create_user: protocol.CreateFrontendUserRequest,
|
||||
api_client: ApiClient = Depends(deps.get_api_client),
|
||||
db: Session = Depends(deps.get_db),
|
||||
):
|
||||
ur = UserRepository(db, api_client)
|
||||
user = ur.lookup_client_user(create_user, create_missing=True)
|
||||
|
||||
def changed(a, b) -> bool:
|
||||
return a is not None and a != b
|
||||
|
||||
# only call update_user if something changed
|
||||
if (
|
||||
changed(create_user.enabled, user.enabled)
|
||||
or changed(create_user.show_on_leaderboard, user.show_on_leaderboard)
|
||||
or changed(create_user.notes, user.notes)
|
||||
or (create_user.tos_acceptance and user.tos_acceptance_date is None)
|
||||
):
|
||||
user = ur.update_user(
|
||||
user.id,
|
||||
enabled=create_user.enabled,
|
||||
show_on_leaderboard=create_user.show_on_leaderboard,
|
||||
tos_acceptance=create_user.tos_acceptance,
|
||||
notes=create_user.notes,
|
||||
)
|
||||
|
||||
return user.to_protocol_frontend_user()
|
||||
|
||||
|
||||
@router.get("/{auth_method}/{username}/messages", response_model=list[protocol.Message])
|
||||
def query_frontend_user_messages(
|
||||
auth_method: str,
|
||||
|
||||
@@ -191,6 +191,7 @@ def update_user(
|
||||
enabled: Optional[bool] = None,
|
||||
notes: Optional[str] = None,
|
||||
show_on_leaderboard: Optional[bool] = None,
|
||||
tos_acceptance: Optional[bool] = None,
|
||||
db: Session = Depends(deps.get_db),
|
||||
api_client: ApiClient = Depends(deps.get_trusted_api_client),
|
||||
):
|
||||
@@ -198,7 +199,7 @@ def update_user(
|
||||
Update a user by global user ID. Only trusted clients can update users.
|
||||
"""
|
||||
ur = UserRepository(db, api_client)
|
||||
ur.update_user(user_id, enabled, notes, show_on_leaderboard)
|
||||
ur.update_user(user_id, enabled, notes, show_on_leaderboard, tos_acceptance)
|
||||
|
||||
|
||||
@router.delete("/{user_id}", status_code=HTTP_204_NO_CONTENT)
|
||||
|
||||
Reference in New Issue
Block a user