refactor(profile): clean ui, reduce unnecessary routes
This commit is contained in:
parent
c212f2e8d7
commit
b3d1dabfc2
@ -101,7 +101,7 @@ ProblemsHeadingDrivers: Fahrberechtigungen
|
|||||||
ProblemsHeadingNotifications: Benachrichtigungen
|
ProblemsHeadingNotifications: Benachrichtigungen
|
||||||
ProblemsHeadingMisc: Allgemein
|
ProblemsHeadingMisc: Allgemein
|
||||||
ProblemsAvsProblem: Synchronisation mit AVS/MoBaKo komplett fehlgeschlagen
|
ProblemsAvsProblem: Synchronisation mit AVS/MoBaKo komplett fehlgeschlagen
|
||||||
ProblemsDriverSynch n@Int: #{pluralDEeN n "Diskrepanze"} zwischen AVS und FRADrive
|
ProblemsDriverSynch n@Int: #{n} #{pluralDE n "Diskrepanz" "Diskrepanzen"} zwischen AVS und FRADrive
|
||||||
ProblemsDriverSynch0: Alle Sperrungen von Vorfeld-Fahrberechtigungen 'F' sind im AVS eingetragen
|
ProblemsDriverSynch0: Alle Sperrungen von Vorfeld-Fahrberechtigungen 'F' sind im AVS eingetragen
|
||||||
ProblemsDriverSynch1down: Alle Sperrungen von Rollfeld-Fahrberechtigungen 'R' sind im AVS eingetragen
|
ProblemsDriverSynch1down: Alle Sperrungen von Rollfeld-Fahrberechtigungen 'R' sind im AVS eingetragen
|
||||||
ProblemsDriverSynch1up: Alle gültigen Vorfeld-Fahrberechtigungen 'F' sind im AVS eingetragen
|
ProblemsDriverSynch1up: Alle gültigen Vorfeld-Fahrberechtigungen 'F' sind im AVS eingetragen
|
||||||
@ -125,8 +125,8 @@ AdminProblemSolved: Erledigt
|
|||||||
AdminProblemSolver: Bearbeitet von
|
AdminProblemSolver: Bearbeitet von
|
||||||
AdminProblemCreated: Erkannt
|
AdminProblemCreated: Erkannt
|
||||||
AdminProblemInfo: Problembeschreibung
|
AdminProblemInfo: Problembeschreibung
|
||||||
AdminProblemsSolved n@Int: #{pluralDEeN n "Admin Probleme"} als erledigt markiert
|
AdminProblemsSolved n@Int: #{pluralDEeN n "Admin Problem"} als erledigt markiert
|
||||||
AdminProblemsReopened n@Int: #{pluralDEeN n "Admin Probleme"} erneut eröffnet
|
AdminProblemsReopened n@Int: #{pluralDEeN n "Admin Problem"} erneut eröffnet
|
||||||
AdminProblemNewCompany: Neue Firma aus AVS automatisch erstellt; prüfen und ggf. Standardansprechpartner eintragen
|
AdminProblemNewCompany: Neue Firma aus AVS automatisch erstellt; prüfen und ggf. Standardansprechpartner eintragen
|
||||||
AdminProblemSupervisorNewCompany b@Bool: Dieser Standardansprechpartner #{boolText mempty "mit Standardumleitung" b} wechselte zu neuer Firma
|
AdminProblemSupervisorNewCompany b@Bool: Dieser Standardansprechpartner #{boolText mempty "mit Standardumleitung" b} wechselte zu neuer Firma
|
||||||
AdminProblemSupervisorLeftCompany b@Bool: Einziger Standardansprechpartner #{boolText mempty "mit Standardumleitung" b} dieses Fahrers wechselte zu neuer Firma
|
AdminProblemSupervisorLeftCompany b@Bool: Einziger Standardansprechpartner #{boolText mempty "mit Standardumleitung" b} dieses Fahrers wechselte zu neuer Firma
|
||||||
|
|||||||
@ -101,6 +101,8 @@ UserAvsSwitchCompanyField: Primärfirma auswählen
|
|||||||
UserAvsCompanySwitched c@CompanyShorthand: Primärfirma gewechselt zu #{tshow c}
|
UserAvsCompanySwitched c@CompanyShorthand: Primärfirma gewechselt zu #{tshow c}
|
||||||
AllUsersLdapSync: Alle LDAP-Synchronisieren
|
AllUsersLdapSync: Alle LDAP-Synchronisieren
|
||||||
AllUsersAvsSync: Alle AVS-Synchronisieren
|
AllUsersAvsSync: Alle AVS-Synchronisieren
|
||||||
|
ThisUserLdapSync: LDAP Synchronisation
|
||||||
|
ThisUserAvsSync: AVS Synchronisation
|
||||||
AuthKindLDAP: Fraport AG Kennung
|
AuthKindLDAP: Fraport AG Kennung
|
||||||
AuthKindPWHash: FRADrive Kennung
|
AuthKindPWHash: FRADrive Kennung
|
||||||
AuthKindNoLogin: Kein Login möglich
|
AuthKindNoLogin: Kein Login möglich
|
||||||
|
|||||||
@ -101,6 +101,8 @@ UserAvsSwitchCompanyField: Select primary company
|
|||||||
UserAvsCompanySwitched c: Primary company switched to #{tshow c}
|
UserAvsCompanySwitched c: Primary company switched to #{tshow c}
|
||||||
AllUsersLdapSync: Synchronise all with LDAP
|
AllUsersLdapSync: Synchronise all with LDAP
|
||||||
AllUsersAvsSync: Synchronise all with AVS
|
AllUsersAvsSync: Synchronise all with AVS
|
||||||
|
ThisUserLdapSync: Synchronise user with LDAP
|
||||||
|
ThisUserAvsSync: Synchronise user with AVS
|
||||||
AuthKindLDAP: Fraport AG account
|
AuthKindLDAP: Fraport AG account
|
||||||
AuthKindPWHash: FRADrive account
|
AuthKindPWHash: FRADrive account
|
||||||
AuthKindNoLogin: No login
|
AuthKindNoLogin: No login
|
||||||
|
|||||||
@ -151,5 +151,3 @@ BreadcrumbSubmissionAuthorshipStatements: Eigenständigkeitserklärungen
|
|||||||
BreadcrumbExternalApis: Externe APIs
|
BreadcrumbExternalApis: Externe APIs
|
||||||
BreadcrumbApiDocs: API Dokumentation
|
BreadcrumbApiDocs: API Dokumentation
|
||||||
BreadcrumbSwagger !ident-ok: OpenAPI 2.0 (Swagger)
|
BreadcrumbSwagger !ident-ok: OpenAPI 2.0 (Swagger)
|
||||||
BreadcrumbSynchLdap !ident-ok: LDAP Synch
|
|
||||||
BreadcrumbSynchAvs !ident-ok: AVS Synch
|
|
||||||
@ -151,5 +151,3 @@ BreadcrumbSubmissionAuthorshipStatements: Statements of Authorship
|
|||||||
BreadcrumbExternalApis: External APIs
|
BreadcrumbExternalApis: External APIs
|
||||||
BreadcrumbApiDocs: API documentation
|
BreadcrumbApiDocs: API documentation
|
||||||
BreadcrumbSwagger: OpenAPI 2.0 (Swagger)
|
BreadcrumbSwagger: OpenAPI 2.0 (Swagger)
|
||||||
BreadcrumbSynchLdap: Synch LDAP
|
|
||||||
BreadcrumbSynchAvs: Synch AVS
|
|
||||||
|
|||||||
2
routes
2
routes
@ -55,8 +55,6 @@
|
|||||||
/users/#CryptoUUIDUser AdminUserR GET POST
|
/users/#CryptoUUIDUser AdminUserR GET POST
|
||||||
/users/#CryptoUUIDUser/delete AdminUserDeleteR POST
|
/users/#CryptoUUIDUser/delete AdminUserDeleteR POST
|
||||||
/users/#CryptoUUIDUser/hijack AdminHijackUserR GET POST !adminANDno-escalation
|
/users/#CryptoUUIDUser/hijack AdminHijackUserR GET POST !adminANDno-escalation
|
||||||
/users/#CryptoUUIDUser/sync/ldap AdminUserSyncLdapR GET
|
|
||||||
/users/#CryptoUUIDUser/sync/avs AdminUserSyncAvsR GET
|
|
||||||
/users/#CryptoUUIDUser/notifications UserNotificationR GET POST !self
|
/users/#CryptoUUIDUser/notifications UserNotificationR GET POST !self
|
||||||
/users/#CryptoUUIDUser/password UserPasswordR GET POST !selfANDis-pw-hash
|
/users/#CryptoUUIDUser/password UserPasswordR GET POST !selfANDis-pw-hash
|
||||||
!/users/functionary-invite/new AdminNewFunctionaryInviteR GET POST
|
!/users/functionary-invite/new AdminNewFunctionaryInviteR GET POST
|
||||||
|
|||||||
@ -88,8 +88,6 @@ breadcrumb (AdminUserR cID) = useRunDB . maybeT (i18nCrumb MsgBreadcrumbUser $ J
|
|||||||
User{..} <- MaybeT $ get uid
|
User{..} <- MaybeT $ get uid
|
||||||
return (userDisplayName, Just UsersR)
|
return (userDisplayName, Just UsersR)
|
||||||
breadcrumb (AdminUserDeleteR cID) = i18nCrumb MsgBreadcrumbUserDelete . Just $ AdminUserR cID
|
breadcrumb (AdminUserDeleteR cID) = i18nCrumb MsgBreadcrumbUserDelete . Just $ AdminUserR cID
|
||||||
breadcrumb (AdminUserSyncLdapR cID) = i18nCrumb MsgBreadcrumbSynchLdap . Just $ AdminUserR cID
|
|
||||||
breadcrumb (AdminUserSyncAvsR cID) = i18nCrumb MsgBreadcrumbSynchAvs . Just $ AdminUserR cID
|
|
||||||
breadcrumb (AdminHijackUserR cID) = i18nCrumb MsgBreadcrumbUserHijack . Just $ AdminUserR cID
|
breadcrumb (AdminHijackUserR cID) = i18nCrumb MsgBreadcrumbUserHijack . Just $ AdminUserR cID
|
||||||
breadcrumb (UserNotificationR cID) = useRunDB $ do
|
breadcrumb (UserNotificationR cID) = useRunDB $ do
|
||||||
mayList <- hasReadAccessTo UsersR
|
mayList <- hasReadAccessTo UsersR
|
||||||
@ -1228,14 +1226,6 @@ pageActions (AdminUserR cID) = return
|
|||||||
{ navLink = defNavLink MsgMenuUserEdit $ ForProfileR cID
|
{ navLink = defNavLink MsgMenuUserEdit $ ForProfileR cID
|
||||||
, navChildren = []
|
, navChildren = []
|
||||||
}
|
}
|
||||||
, NavPageActionPrimary
|
|
||||||
{ navLink = defNavLink MsgUserLdapSync $ AdminUserSyncLdapR cID
|
|
||||||
, navChildren = []
|
|
||||||
}
|
|
||||||
, NavPageActionPrimary
|
|
||||||
{ navLink = defNavLink MsgUserAvsSync $ AdminUserSyncAvsR cID
|
|
||||||
, navChildren = []
|
|
||||||
}
|
|
||||||
, NavPageActionPrimary
|
, NavPageActionPrimary
|
||||||
{ navLink = defNavLinkModal MsgUserHijack $ AdminHijackUserR cID
|
{ navLink = defNavLinkModal MsgUserHijack $ AdminHijackUserR cID
|
||||||
, navChildren = []
|
, navChildren = []
|
||||||
@ -1467,6 +1457,12 @@ pageActions (ForProfileR cID) = return
|
|||||||
, navChildren = []
|
, navChildren = []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
pageActions (ForProfileDataR cID) = return
|
||||||
|
[ NavPageActionPrimary
|
||||||
|
{ navLink = defNavLink MsgAdminUserHeading $ AdminUserR cID
|
||||||
|
, navChildren = []
|
||||||
|
}
|
||||||
|
]
|
||||||
pageActions TermShowR = do
|
pageActions TermShowR = do
|
||||||
participantsSecondary <- pageQuickActions NavQuickViewPageActionSecondary ParticipantsListR
|
participantsSecondary <- pageQuickActions NavQuickViewPageActionSecondary ParticipantsListR
|
||||||
return
|
return
|
||||||
|
|||||||
@ -14,15 +14,12 @@ module Handler.Profile
|
|||||||
, getSetDisplayEmailR, postSetDisplayEmailR
|
, getSetDisplayEmailR, postSetDisplayEmailR
|
||||||
, getCsvOptionsR, postCsvOptionsR
|
, getCsvOptionsR, postCsvOptionsR
|
||||||
, postLangR
|
, postLangR
|
||||||
, getAdminUserSyncAvsR
|
|
||||||
, getAdminUserSyncLdapR
|
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Import
|
import Import
|
||||||
|
|
||||||
import Handler.Utils
|
import Handler.Utils
|
||||||
import Handler.Utils.AvsUpdate
|
import Handler.Utils.AvsUpdate
|
||||||
import Handler.Utils.Avs
|
|
||||||
import Handler.Utils.Profile
|
import Handler.Utils.Profile
|
||||||
import Handler.Utils.Users
|
import Handler.Utils.Users
|
||||||
import Handler.Utils.Company
|
import Handler.Utils.Company
|
||||||
@ -1262,18 +1259,3 @@ postLangR = do
|
|||||||
addMessage Success . toHtml $ mr MsgLanguageChanged
|
addMessage Success . toHtml $ mr MsgLanguageChanged
|
||||||
|
|
||||||
redirect . fromMaybe NewsR =<< lookupGlobalGetParam GetReferer
|
redirect . fromMaybe NewsR =<< lookupGlobalGetParam GetReferer
|
||||||
|
|
||||||
|
|
||||||
getAdminUserSyncLdapR :: CryptoUUIDUser -> Handler Html
|
|
||||||
getAdminUserSyncLdapR uuid = do
|
|
||||||
uid <- decrypt uuid
|
|
||||||
queueJob' $ JobSynchroniseLdapUser uid
|
|
||||||
addMessageI Success $ MsgSynchroniseLdapUserQueued 1
|
|
||||||
redirectUltDest $ AdminUserR uuid
|
|
||||||
|
|
||||||
getAdminUserSyncAvsR :: CryptoUUIDUser -> Handler Html
|
|
||||||
getAdminUserSyncAvsR uuid = do
|
|
||||||
uid <- decrypt uuid
|
|
||||||
n <- runDB $ queueAvsUpdateByUID (Set.singleton uid) Nothing
|
|
||||||
addMessageI Success $ MsgSynchroniseAvsUserQueued $ fromIntegral n
|
|
||||||
redirectUltDest $ AdminUserR uuid
|
|
||||||
|
|||||||
@ -406,7 +406,7 @@ postUsersR = do
|
|||||||
redirectKeepGetParams UsersR
|
redirectKeepGetParams UsersR
|
||||||
_other -> addMessageI Error MsgInvalidFormAction
|
_other -> addMessageI Error MsgInvalidFormAction
|
||||||
|
|
||||||
((allUsersRes, allUsersWgt), allUsersEnctype) <- runFormPost . identifyForm FIDAllUsersAction $ buttonForm
|
((allUsersRes, allUsersWgt'), allUsersEnctype) <- runFormPost . identifyForm FIDAllUsersAction $ buttonForm
|
||||||
|
|
||||||
formResult allUsersRes $ \case
|
formResult allUsersRes $ \case
|
||||||
AllUsersLdapSync -> do
|
AllUsersLdapSync -> do
|
||||||
@ -434,7 +434,7 @@ postUsersR = do
|
|||||||
addMessageI Success $ MsgSynchroniseAvsAllUsersQueued n
|
addMessageI Success $ MsgSynchroniseAvsAllUsersQueued n
|
||||||
redirect UsersR
|
redirect UsersR
|
||||||
|
|
||||||
let allUsersWgt' = wrapForm allUsersWgt def
|
let allUsersWgt = wrapForm allUsersWgt' def
|
||||||
{ formSubmit = FormNoSubmit
|
{ formSubmit = FormNoSubmit
|
||||||
, formAction = Just $ SomeRoute UsersR
|
, formAction = Just $ SomeRoute UsersR
|
||||||
, formEncoding = allUsersEnctype
|
, formEncoding = allUsersEnctype
|
||||||
@ -494,6 +494,15 @@ nullaryPathPiece ''UserAssimilateButton $ camelToPathPiece' 2
|
|||||||
embedRenderMessage ''UniWorX ''UserAssimilateButton id
|
embedRenderMessage ''UniWorX ''UserAssimilateButton id
|
||||||
|
|
||||||
|
|
||||||
|
data ThisUserAction = ThisUserLdapSync | ThisUserAvsSync
|
||||||
|
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic)
|
||||||
|
deriving anyclass (Universe, Finite)
|
||||||
|
|
||||||
|
nullaryPathPiece ''ThisUserAction $ camelToPathPiece' 1
|
||||||
|
embedRenderMessage ''UniWorX ''ThisUserAction id
|
||||||
|
|
||||||
|
instance Button UniWorX ThisUserAction where
|
||||||
|
btnClasses _ = [BCIsButton, BCPrimary]
|
||||||
|
|
||||||
|
|
||||||
getAdminUserR, postAdminUserR :: CryptoUUIDUser -> Handler Html
|
getAdminUserR, postAdminUserR :: CryptoUUIDUser -> Handler Html
|
||||||
@ -501,6 +510,23 @@ getAdminUserR = postAdminUserR
|
|||||||
postAdminUserR uuid = do
|
postAdminUserR uuid = do
|
||||||
adminId <- requireAuthId
|
adminId <- requireAuthId
|
||||||
uid <- decrypt uuid
|
uid <- decrypt uuid
|
||||||
|
|
||||||
|
((thisUserActRes, thisUserActWgt'), thisUserActEnctype) <- runFormPost . identifyForm FIDThisUserAction $ buttonForm
|
||||||
|
formResult thisUserActRes $ \case
|
||||||
|
ThisUserLdapSync -> do
|
||||||
|
queueJob' $ JobSynchroniseLdapUser uid
|
||||||
|
addMessageI Success $ MsgSynchroniseLdapUserQueued 1
|
||||||
|
redirectKeepGetParams $ AdminUserR uuid
|
||||||
|
ThisUserAvsSync -> do
|
||||||
|
n <- runDB $ queueAvsUpdateByUID (Set.singleton uid) Nothing
|
||||||
|
addMessageI Success $ MsgSynchroniseAvsUserQueued $ fromIntegral n
|
||||||
|
redirectKeepGetParams $ AdminUserR uuid
|
||||||
|
let thisUserActWgt = wrapForm thisUserActWgt' def
|
||||||
|
{ formSubmit = FormNoSubmit
|
||||||
|
, formAction = Just $ SomeRoute $ AdminUserR uuid
|
||||||
|
, formEncoding = thisUserActEnctype
|
||||||
|
}
|
||||||
|
|
||||||
(user@User{..}, adminSchools, functions, schools, systemFunctions) <- runDB $ do
|
(user@User{..}, adminSchools, functions, schools, systemFunctions) <- runDB $ do
|
||||||
user <- get404 uid
|
user <- get404 uid
|
||||||
|
|
||||||
|
|||||||
@ -302,6 +302,7 @@ data FormIdentifier
|
|||||||
| FIDAssignSubmissions
|
| FIDAssignSubmissions
|
||||||
| FIDUserAuthMode | FIDUserAssimilate | FIDUserRights | FIDUserAuthentication
|
| FIDUserAuthMode | FIDUserAssimilate | FIDUserRights | FIDUserAuthentication
|
||||||
| FIDAllUsersAction
|
| FIDAllUsersAction
|
||||||
|
| FIDThisUserAction
|
||||||
| FIDLanguage
|
| FIDLanguage
|
||||||
| FIDExamAutoOccurrenceCalculate | FIDExamAutoOccurrenceConfirm | FIDExamAutoOccurrenceNudge UUID | FIDExamAutoOccurrenceIgnoreRoom UUID
|
| FIDExamAutoOccurrenceCalculate | FIDExamAutoOccurrenceConfirm | FIDExamAutoOccurrenceNudge UUID | FIDExamAutoOccurrenceIgnoreRoom UUID
|
||||||
| FIDTestDownload
|
| FIDTestDownload
|
||||||
|
|||||||
@ -4,6 +4,8 @@ $# SPDX-FileCopyrightText: 2022 Gregor Kleen <gregor.kleen@ifi.lmu.de>,Steffen J
|
|||||||
$#
|
$#
|
||||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
<section>
|
||||||
|
^{thisUserActWgt}
|
||||||
<section>
|
<section>
|
||||||
^{userDataWidget}
|
^{userDataWidget}
|
||||||
<section>
|
<section>
|
||||||
|
|||||||
@ -5,6 +5,6 @@ $#
|
|||||||
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
$# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
^{allUsersWgt'}
|
^{allUsersWgt}
|
||||||
<section>
|
<section>
|
||||||
^{userList}
|
^{userList}
|
||||||
|
|||||||
Reference in New Issue
Block a user