chore(model): remigrate ExternalAuth -> ExternalUser for more general data lookup; redefine lastSync timestamp semantics
This commit is contained in:
parent
13502d704e
commit
40fe8ecfc6
@ -1,13 +0,0 @@
|
||||
-- SPDX-FileCopyrightText: 2024 Sarah Vaupel <sarah.vaupel@uniworx.de>
|
||||
--
|
||||
-- SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
-- TODO: define AuthenticationSource with json instances to store unique source identifiers per protocol
|
||||
-- | User authentication data fetched from external user sources
|
||||
ExternalAuth
|
||||
user UserId
|
||||
source AuthSourceIdent -- Identifier of the external source in the config
|
||||
data Value "default='{}'::jsonb" -- Raw user data from external source
|
||||
lastSync UTCTime -- When was the corresponding User entry last synced with this external source? -- TODO rethink
|
||||
UniqueExternalAuth user source -- At most one entry of this user per source
|
||||
deriving Show Eq Ord Generic
|
||||
@ -49,10 +49,20 @@ User json -- Each Uni2work user has a corresponding row in this table; create
|
||||
prefersPostal Bool default=false -- user prefers letters by post instead of email
|
||||
examOfficeGetSynced Bool default=true -- whether synced status should be displayed for exam results by default
|
||||
examOfficeGetLabels Bool default=true -- whether labels should be displayed for exam results by default
|
||||
lastSync UTCTime Maybe -- When was the User data last synchronised with external sources?
|
||||
UniqueAuthentication ident -- Column 'ident' can be used as a row-key in this table
|
||||
UniqueEmail email -- Column 'email' can be used as a row-key in this table
|
||||
deriving Show Eq Ord Generic -- Haskell-specific settings for runtime-value representing a row in memory
|
||||
|
||||
-- | User data fetched from external user sources, used for authentication and data queries
|
||||
ExternalUser
|
||||
user UserId
|
||||
source AuthSourceIdent -- Identifier of the external source in the config
|
||||
data Value "default='{}'::jsonb" -- Raw user data from external source -- TODO: maybe make Maybe, iff the source only ever responds with "success"?
|
||||
lastSync UTCTime -- When was the external source last queried?
|
||||
UniqueExternalUser user source -- At most one entry of this user per source
|
||||
deriving Show Eq Ord Generic
|
||||
|
||||
UserFunction -- Administratively assigned functions (lecturer, admin, evaluation, ...)
|
||||
user UserId
|
||||
school SchoolId
|
||||
|
||||
Reference in New Issue
Block a user