Source code for gws.ext.action.auth

"""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})