diff --git a/src/Handler/Admin/Avs.hs b/src/Handler/Admin/Avs.hs index 5edaee4bb..d82ae6365 100644 --- a/src/Handler/Admin/Avs.hs +++ b/src/Handler/Admin/Avs.hs @@ -388,29 +388,13 @@ getProblemAvsSynchR = do let no_req = Set.size apids mkind = if oks < no_req then Warning else Success addMessageI mkind $ MsgAvsSetLicences aLic oks no_req - redirect ProblemAvsSynchR -- reload to update all tables - procRes alic (LicenceTableRevokeFDriveData, apids) = do + redirect ProblemAvsSynchR -- reload to update all tables + + procRes alic (LicenceTableRevokeFDriveData, selectedUsers) = do runDB $ do - qId <- getKeyBy404 $ UniqueQualificationAvsLicence $ Just alic - uas <- selectList [UserAvsPersonId <-. Set.toList apids] [] - let uids = view _userAvsUser <$> uas - endday = pred nowaday - crits = [QualificationUserQualification ==. qId, QualificationUserUser <-. uids] - oks <- fromIntegral <$> updateWhereCount crits [QualificationUserValidUntil =. endday, QualificationUserLastRefresh =. nowaday] - qus <- selectList crits [] - forM_ qus $ \qu -> - audit TransactionQualificationUserEdit - { transactionQualificationUser = qu ^. _entityKey - , transactionQualification = qId -- qu ^. _qualificationUserQualification - , transactionUser = qu ^. _qualificationUserUser - , transactionQualificationValidUntil = endday -- qu ^. _qualificationUserValidUntil - } - if oks /= length qus || oks /= Set.size apids - then do - $logErrorS "AVS" $ "Revoke FRADrive licences discrepancy! Requested: " <> tshow (Set.size apids) <> " Updated: " <> tshow oks <> " Found: " <> tshow (length qus) - liftHandler $ addMessageI Error $ MsgRevokeFraDriveLicences alic oks - else - liftHandler $ addMessageI Success $ MsgRevokeFraDriveLicences alic oks + qId <- getKeyBy404 $ UniqueQualificationAvsLicence $ Just alic + forM_ selectedUsers $ upsertQualificationUser qId nowaday $ pred nowaday + addMessageI Success $ MsgRevokeFraDriveLicences alic oks redirect ProblemAvsSynchR -- must be outside runDB procRes _alic (LicenceTableGrantFDriveData{..}, apids ) = do