-- SPDX-FileCopyrightText: 2024 UniWorX Systems -- SPDX-FileContributor: David Mosbach -- -- SPDX-License-Identifier: AGPL-3.0-or-later {-# LANGUAGE OverloadedStrings, RecordWildCards, TypeFamilies, MultiParamTypeClasses, FlexibleInstances, AllowAmbiguousTypes #-} module User ( UserData(..) ) where import Data.Aeson import Data.Map.Strict import Data.Maybe import Data.Text type UserName = Text type Password = Text class (Eq u, Show u, ToJSON a, Monoid a) => UserData u a where -- TODO Show maybe not necessary data Scope u readScope :: String -> Scope u showScope :: Scope u -> String userScope :: u -> Scope u -> a lookupUser :: UserName -> Password -> IO (Maybe u)