from auth.auth_context import get_authenticated_user
from config_app.config_endpoints.api import resource, ApiResource, nickname
from config_app.config_endpoints.api.superuser_models_interface import user_view


@resource('/v1/user/')
class User(ApiResource):
  """ Operations related to users. """

  @nickname('getLoggedInUser')
  def get(self):
    """ Get user information for the authenticated user. """
    user = get_authenticated_user()
    # TODO(config): figure out if we need user validation
    # if user is None or user.organization or not UserReadPermission(user.username).can():
    #     raise InvalidToken("Requires authentication", payload={'session_required': False})

    return user_view(user)