"""Check user logins and logouts."""
import gws.types as t
import gws.common.action
[docs]class Config(t.WithTypeAndAccess):
"""Authorization action"""
pass
[docs]class Response(t.Response):
user: t.UserProps
[docs]class LoginParams(t.Params):
username: str
password: str
[docs]class Object(gws.common.action.Object):
[docs] def api_check(self, req: t.IRequest, p: t.Params) -> Response:
"""Check the authorization status"""
return _feedback(req)
[docs] def api_login(self, req: t.IRequest, p: LoginParams) -> Response:
"""Perform a login"""
req.login(p.username, p.password)
return _feedback(req)
[docs] def api_logout(self, req: t.IRequest, p: t.Params) -> Response:
"""Perform a logout"""
req.logout()
return _feedback(req)
def _feedback(req: t.IRequest):
return Response({'user': req.user.props})