chore(avs): use AVSNO as matriculation
This commit is contained in:
parent
1633d7573a
commit
c49b329d18
@ -16,7 +16,7 @@ TableTerm !ident-ok: Semester
|
||||
TableCourseSchool: Institut
|
||||
TableSubmissionGroup: Feste Abgabegruppe
|
||||
TableNoSubmissionGroup: Keine feste Abgabegruppe
|
||||
TableMatrikelNr: Matrikelnummer
|
||||
TableMatrikelNr: AVS Nr
|
||||
TableSex: Geschlecht
|
||||
TableBirthday: Geburtsdatum
|
||||
TableSchool: Institut
|
||||
@ -56,7 +56,7 @@ TableTutorialTime: Zeit
|
||||
TableTutorialDeregisterUntil: Abmeldungen bis
|
||||
TableActionsHead: Aktionen
|
||||
TableNoFilter: Keine Einschränkung
|
||||
TableUserMatriculation: Matrikelnummer
|
||||
TableUserMatriculation: ASV Nummer
|
||||
TableColumnStudyFeatures: Studiendaten
|
||||
TableSchoolShort: Kürzel
|
||||
TableSchoolName !ident-ok: Name
|
||||
|
||||
@ -16,7 +16,7 @@ TableTerm: Semester
|
||||
TableCourseSchool: Department
|
||||
TableSubmissionGroup: Registered submission group
|
||||
TableNoSubmissionGroup: No registered submission group
|
||||
TableMatrikelNr: Matriculation
|
||||
TableMatrikelNr: AVS No
|
||||
TableSex: Sex
|
||||
TableBirthday: Birthday
|
||||
TableSchool: Department
|
||||
@ -56,7 +56,7 @@ TableTutorialDeregisterUntil: Deregister until
|
||||
TableActionsHead: Actions
|
||||
TableTutorialTime: Time
|
||||
TableNoFilter: No restriction
|
||||
TableUserMatriculation: Matriculation
|
||||
TableUserMatriculation: AVS Number
|
||||
TableColumnStudyFeatures: Features of study
|
||||
TableSchoolShort: Shorthand
|
||||
TableSchoolName: Name
|
||||
|
||||
@ -80,7 +80,7 @@ postTUsersR tid ssh csh tutn = do
|
||||
psValidator = def
|
||||
& defaultSortingByName
|
||||
& restrictSorting (\name _ -> none (== name) ["note", "registration", "tutorials", "exams", "submission-group", "state"]) -- We need to be careful to restrict allowed sorting/filter to not expose sensitive information
|
||||
& restrictFilter (\name _ -> none (== name) ["tutorial", "exam", "submission-group", "active", "has-personalised-sheet-files"])
|
||||
& restrictFilter (\name _ -> none (== name) ["tutorial", "exam", "submission-group", "active", "has-personalised-sheet-files"])
|
||||
isInTut q = E.exists $ do
|
||||
tutorialParticipant <- E.from $ E.table @TutorialParticipant
|
||||
E.where_ $ tutorialParticipant E.^. TutorialParticipantUser E.==. queryUser q E.^. UserId
|
||||
|
||||
@ -99,9 +99,7 @@ postUsersR = do
|
||||
, sortable (Just "name") (i18nCell MsgName) $ \DBRow{ dbrOutput = Entity uid User{..} } -> anchorCellM
|
||||
(AdminUserR <$> encrypt uid)
|
||||
(nameWidget userDisplayName userSurname)
|
||||
-- , sortable (Just "matriculation") (i18nCell MsgTableMatrikelNr) $ \DBRow{ dbrOutput = Entity uid User{..} } -> anchorCellM
|
||||
-- (AdminUserR <$> encrypt uid)
|
||||
-- (toWgt userMatrikelnummer)
|
||||
, sortable (Just "matriculation") (i18nCell MsgTableMatrikelNr) $ \DBRow{ dbrOutput = entUsr } -> cellHasMatrikelnummerLinked entUsr
|
||||
, sortable (Just "user-company") (i18nCell MsgTableCompany) $ \DBRow{ dbrOutput = Entity uid _ } -> flip (set' cellContents) mempty $ do -- why does sqlCell not work here? Mismatch "YesodDB UniWorX" and "RWST (Maybe (Env,FileEnv), UniWorX, [Lang]) Enctype Ints (HandlerFor UniWorX"
|
||||
companies' <- liftHandler . runDB . E.select $ E.from $ \(usrComp `E.InnerJoin` comp) -> do
|
||||
E.on $ usrComp E.^. UserCompanyCompany E.==. comp E.^. CompanyId
|
||||
@ -215,6 +213,9 @@ postUsersR = do
|
||||
, ( "display-name"
|
||||
, SortColumn $ \user -> user E.^. UserDisplayName
|
||||
)
|
||||
, ( "matriculation"
|
||||
, SortColumn $ \user -> user E.^. UserMatrikelnummer
|
||||
)
|
||||
, ( "personal-number"
|
||||
, SortColumn $ \user -> user E.^. UserCompanyPersonalNumber
|
||||
)
|
||||
@ -262,10 +263,10 @@ postUsersR = do
|
||||
Just needle -> (E.castString (user E.^. UserEmail) `E.ilike` (E.%) E.++. E.val needle E.++. (E.%))
|
||||
E.||. (E.castString (user E.^. UserDisplayEmail) `E.ilike` (E.%) E.++. E.val needle E.++. (E.%))
|
||||
)
|
||||
-- , ( "matriculation", FilterColumn $ \user (criteria :: Set.Set Text) -> if
|
||||
-- | Set.null criteria -> E.true -- TODO: why can this be eFalse and work still?
|
||||
-- | otherwise -> E.any (\c -> user E.^. UserMatrikelnummer `E.hasInfix` E.val c) criteria
|
||||
-- )
|
||||
, ( "matriculation", FilterColumn $ \user (criteria :: Set.Set Text) -> if
|
||||
| Set.null criteria -> E.true
|
||||
| otherwise -> E.any (\c -> user E.^. UserMatrikelnummer `E.hasInfix` E.val c) criteria
|
||||
)
|
||||
, ( "personal-number", FilterColumn $ \user (criteria :: Set.Set Text) -> if
|
||||
| Set.null criteria -> E.true -- TODO: why can this be eFalse and work still?
|
||||
| otherwise -> E.any (\c -> user E.^. UserCompanyPersonalNumber `E.hasInfix` E.val c) criteria
|
||||
|
||||
@ -434,7 +434,7 @@ upsertAvsUserById api = do
|
||||
, audSurname = avsSurname
|
||||
, audDisplayName = avsFirstName <> Text.cons ' ' avsSurname
|
||||
, audDisplayEmail = "" -- Email is unknown in this version of the avs query, to be updated later (FUTURE TODO)
|
||||
, audMatriculation = Nothing
|
||||
, audMatriculation = Just $ tshow avsPersonPersonNo
|
||||
, audSex = Nothing
|
||||
, audBirthday = Nothing
|
||||
, audMobile = Nothing
|
||||
@ -460,7 +460,7 @@ upsertAvsUserById api = do
|
||||
return mbUid
|
||||
|
||||
(Just (Entity _ UserAvs{userAvsUser=uid})
|
||||
, Just AvsDataPerson{avsPersonPersonCards, avsPersonInternalPersonalNo, avsPersonFirstName= Text.strip -> avsFirstName, avsPersonLastName= Text.strip -> avsSurname}) -> do -- known user, update address and pinPassword
|
||||
, Just AvsDataPerson{avsPersonPersonCards, avsPersonInternalPersonalNo, avsPersonPersonNo, avsPersonFirstName= Text.strip -> avsFirstName, avsPersonLastName= Text.strip -> avsSurname}) -> do -- known user, update address and pinPassword
|
||||
let (mbCompany, mbCoFirmAddr, _) = guessLicenceAddress avsPersonPersonCards
|
||||
userFirmAddr = plaintextToStoredMarkup <$> mbCoFirmAddr
|
||||
pinCard = Set.lookupMax avsPersonPersonCards
|
||||
@ -470,6 +470,7 @@ upsertAvsUserById api = do
|
||||
update uid [ UserFirstName =. avsFirstName -- update in case of name changes via AVS; might be changed again through LDAP
|
||||
, UserSurname =. avsSurname
|
||||
, UserDisplayName =. avsFirstName <> Text.cons ' ' avsSurname
|
||||
, UserMatrikelnummer =. Just (tshow avsPersonPersonNo) -- TODO: Deactivate this update after Q2/2023; this is only needed since UserMatrikelnummer was used for AVSNO later
|
||||
, UserCompanyPersonalNumber =. avsInternalPersonalNo <$> canonical avsPersonInternalPersonalNo
|
||||
]
|
||||
oldCards <- selectList [UserAvsCardPersonId ==. api] []
|
||||
|
||||
@ -442,8 +442,8 @@ fltrUserMatriculationUI :: DBFilterUI
|
||||
fltrUserMatriculationUI mPrev = prismAForm (singletonFilter "user-matriculation") mPrev $ aopt textField (fslI MsgTableUserMatriculation)
|
||||
|
||||
|
||||
colUserMatriclenr :: (IsDBTable m c, HasUser a) => Colonnade Sortable a (DBCell m c)
|
||||
colUserMatriclenr = sortable (Just "user-matriclenumber") (i18nCell MsgTableMatrikelNr) cellHasMatrikelnummer
|
||||
colUserMatriclenr :: (IsDBTable m c, HasEntity a User) => Colonnade Sortable a (DBCell m c)
|
||||
colUserMatriclenr = sortable (Just "user-matriclenumber") (i18nCell MsgTableMatrikelNr) cellHasMatrikelnummerLinked
|
||||
|
||||
sortUserMatriclenr :: IsString d => (t -> E.SqlExpr (Entity User)) -> (d, SortColumn t r')
|
||||
sortUserMatriclenr queryUser = ("user-matriclenumber", SortColumn $ queryUser >>> (E.^. UserMatrikelnummer))
|
||||
|
||||
@ -163,7 +163,7 @@ fillDb = do
|
||||
, userAuthentication = pwSimple
|
||||
, userLastAuthentication = Nothing
|
||||
, userTokensIssuedAfter = Nothing
|
||||
, userMatrikelnummer = Nothing
|
||||
, userMatrikelnummer = Just "94094094094"
|
||||
, userEmail = "e12345@fraport.de"
|
||||
, userDisplayEmail = "jost@tcs.ifi.lmu.de"
|
||||
, userDisplayName = "Steffen Jost"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user