chore(users): add action to remove all supervisors
This commit is contained in:
parent
c42930d4d0
commit
19012abd38
@ -90,9 +90,11 @@ AllUsersLdapSync: Alle LDAP-Synchronisieren
|
|||||||
UserHijack: Sitzung übernehmen
|
UserHijack: Sitzung übernehmen
|
||||||
UserAddSupervisor: Ansprechpartner hinzufügen
|
UserAddSupervisor: Ansprechpartner hinzufügen
|
||||||
UserSetSupervisor: Ansprechpartner ersetzen
|
UserSetSupervisor: Ansprechpartner ersetzen
|
||||||
|
UserRemoveSupervisor: Alle Ansprechpartner entfernen
|
||||||
AuthKindLDAP: Fraport AG Kennung
|
AuthKindLDAP: Fraport AG Kennung
|
||||||
AuthKindPWHash: FRADrive Kennung
|
AuthKindPWHash: FRADrive Kennung
|
||||||
AuthKindNoLogin: Kein Login möglich
|
AuthKindNoLogin: Kein Login möglich
|
||||||
Name !ident-ok: Name
|
Name !ident-ok: Name
|
||||||
UsersChangeSupervisorsSuccess usr@Int spr@Int: #{tshow spr} Ansprechpartner für #{tshow usr} Benutzer gesetzt
|
UsersChangeSupervisorsSuccess usr@Int spr@Int: #{tshow spr} Ansprechpartner für #{tshow usr} Benutzer gesetzt.
|
||||||
UsersChangeSupervisorsWarning usr@Int spr@Int bad@Int: Nur #{tshow spr} Ansprechpartner für #{tshow usr} Benutzer gesetzt. #{tshow bad} Ansprechpartner wurden nicht gefunden!
|
UsersChangeSupervisorsWarning usr@Int spr@Int bad@Int: Nur _{MsgUsersChangeSupervisorsSuccess usr spr} #{tshow bad} Ansprechpartner #{pluralDE bad "wurde" "wurden"} nicht gefunden!
|
||||||
|
UsersRemoveSupervisors usr@Int: Alle Ansprechpartner für #{tshow usr} Benutzer gelöscht.
|
||||||
|
|||||||
@ -90,9 +90,11 @@ AllUsersLdapSync: Synchronise all with LDAP
|
|||||||
UserHijack: Hijack session
|
UserHijack: Hijack session
|
||||||
UserAddSupervisor: Add supervisor
|
UserAddSupervisor: Add supervisor
|
||||||
UserSetSupervisor: Replace supervisors
|
UserSetSupervisor: Replace supervisors
|
||||||
|
UserRemoveSupervisor: Set to unsupervised
|
||||||
AuthKindLDAP: Fraport AG account
|
AuthKindLDAP: Fraport AG account
|
||||||
AuthKindPWHash: FRADrive account
|
AuthKindPWHash: FRADrive account
|
||||||
AuthKindNoLogin: No login
|
AuthKindNoLogin: No login
|
||||||
Name: Name
|
Name: Name
|
||||||
UsersChangeSupervisorsSuccess usr@Int spr@Int: #{tshow spr} Supervisors for #{tshow usr} Users set
|
UsersChangeSupervisorsSuccess usr spr: #{pluralENsN spr "supervisor"} for #{pluralENsN usr "user"} set.
|
||||||
UsersChangeSupervisorsWarning usr@Int spr@Int bad@Int: Nur #{tshow spr} Supervisors for #{tshow usr} Users set. #{tshow bad} Supervisors could not be identified!
|
UsersChangeSupervisorsWarning usr spr bad: Only _{MsgUsersChangeSupervisorsSuccess usr spr} #{pluralENsN bad "supervisors"} could not be identified!
|
||||||
|
UsersRemoveSupervisors usr: Removed all supervisors for #{pluralENsN usr "user"}.
|
||||||
@ -115,6 +115,10 @@ pluralENs :: (Eq a, Num a)
|
|||||||
-- ^ @pluralENs n "foo" = pluralEN n "foo" "foos"@
|
-- ^ @pluralENs n "foo" = pluralEN n "foo" "foos"@
|
||||||
pluralENs n t = pluralEN n t $ t `snoc` 's'
|
pluralENs n t = pluralEN n t $ t `snoc` 's'
|
||||||
|
|
||||||
|
-- | like `pluralENs` but also prefixes with the number
|
||||||
|
pluralENsN :: (Eq a, Num a, Show a) => a -> Text -> Text
|
||||||
|
pluralENsN n t = tshow n <> cons ' ' (pluralENs n t)
|
||||||
|
|
||||||
noneOneMoreEN :: (Eq a, Num a)
|
noneOneMoreEN :: (Eq a, Num a)
|
||||||
=> a -- ^ Count
|
=> a -- ^ Count
|
||||||
-> Text -- ^ None
|
-> Text -- ^ None
|
||||||
|
|||||||
@ -55,7 +55,7 @@ hijackUserForm csrf = do
|
|||||||
-- instance HasUser (DBRow (Entity USer)) where
|
-- instance HasUser (DBRow (Entity USer)) where
|
||||||
-- hasUser = _entityVal
|
-- hasUser = _entityVal
|
||||||
|
|
||||||
data UserAction = UserLdapSync | UserAddSupervisor | UserSetSupervisor
|
data UserAction = UserLdapSync | UserAddSupervisor | UserSetSupervisor | UserRemoveSupervisor
|
||||||
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic, Typeable)
|
deriving (Eq, Ord, Enum, Bounded, Read, Show, Generic, Typeable)
|
||||||
deriving anyclass (Universe, Finite)
|
deriving anyclass (Universe, Finite)
|
||||||
|
|
||||||
@ -66,6 +66,7 @@ data UserActionData = UserLdapSyncData
|
|||||||
| UserHijack
|
| UserHijack
|
||||||
| UserAddSupervisorData { getActionSupervisors :: Set Text, getActionRerouteNotifications :: Bool }
|
| UserAddSupervisorData { getActionSupervisors :: Set Text, getActionRerouteNotifications :: Bool }
|
||||||
| UserSetSupervisorData { getActionSupervisors :: Set Text, getActionRerouteNotifications :: Bool }
|
| UserSetSupervisorData { getActionSupervisors :: Set Text, getActionRerouteNotifications :: Bool }
|
||||||
|
| UserRemoveSupervisorData
|
||||||
deriving (Eq, Ord, Read, Show, Generic, Typeable)
|
deriving (Eq, Ord, Read, Show, Generic, Typeable)
|
||||||
|
|
||||||
isNotSetSupervisor :: UserActionData -> Bool
|
isNotSetSupervisor :: UserActionData -> Bool
|
||||||
@ -192,6 +193,7 @@ postUsersR = do
|
|||||||
, singletonMap UserSetSupervisor $ UserSetSupervisorData
|
, singletonMap UserSetSupervisor $ UserSetSupervisorData
|
||||||
<$> apopt (textField & cfCommaSeparatedSet) (fslI MsgMppSupervisor & setTooltip MsgCourseParticipantsRegisterUsersFieldTip) Nothing
|
<$> apopt (textField & cfCommaSeparatedSet) (fslI MsgMppSupervisor & setTooltip MsgCourseParticipantsRegisterUsersFieldTip) Nothing
|
||||||
<*> apopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgMailSupervisorReroute & setTooltip MsgMailSupervisorRerouteTooltip) (Just True)
|
<*> apopt (boolField . Just $ SomeMessage MsgBoolIrrelevant) (fslI MsgMailSupervisorReroute & setTooltip MsgMailSupervisorRerouteTooltip) (Just True)
|
||||||
|
, singletonMap UserRemoveSupervisor $ pure UserRemoveSupervisorData
|
||||||
]
|
]
|
||||||
|
|
||||||
over _1 postprocess <$> dbTable psValidator DBTable
|
over _1 postprocess <$> dbTable psValidator DBTable
|
||||||
@ -339,6 +341,9 @@ postUsersR = do
|
|||||||
redirect UsersR
|
redirect UsersR
|
||||||
(UserHijack, Set.minView -> Just (uid, _)) ->
|
(UserHijack, Set.minView -> Just (uid, _)) ->
|
||||||
hijackUser uid >>= sendResponse
|
hijackUser uid >>= sendResponse
|
||||||
|
(UserRemoveSupervisorData, userSet) -> do
|
||||||
|
runDB $ deleteWhere [UserSupervisorUser <-. Set.toList userSet]
|
||||||
|
addMessageI Success $ MsgUsersRemoveSupervisors $ Set.size userSet
|
||||||
(act, usersSet)
|
(act, usersSet)
|
||||||
| isActionSupervisor act -> do
|
| isActionSupervisor act -> do
|
||||||
avsUsers :: Map Text (Maybe UserId) <- sequenceA $ Map.fromSet upsertAvsUser $ getActionSupervisors act
|
avsUsers :: Map Text (Maybe UserId) <- sequenceA $ Map.fromSet upsertAvsUser $ getActionSupervisors act
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user