@@ -52,11 +52,13 @@ import Control.Monad.Trans.Except (mapExceptT)
52
52
import Control.Monad.Trans.Maybe (MaybeT (MaybeT ), runMaybeT )
53
53
import Crypto.Hash (Digest , SHA256 , hashlazy )
54
54
import qualified Data.Aeson as Aeson
55
+ import qualified Data.Aeson.Text as Aeson
55
56
import Data.Handle (Handle (Handle ), parseHandle )
56
57
import Data.Id (Id (.. ), TeamId , UserId , idToText )
57
58
import Data.Json.Util (UTCTimeMillis , fromUTCTimeMillis , toUTCTimeMillis )
58
59
import Data.String.Conversions (cs )
59
60
import qualified Data.Text as Text
61
+ import qualified Data.UUID as UUID
60
62
import qualified Data.UUID.V4 as UUID
61
63
import Imports
62
64
import Network.URI (URI , parseURI )
@@ -72,6 +74,7 @@ import System.Logger.Message (Msg)
72
74
import qualified URI.ByteString as URIBS
73
75
import Util.Logging (logFunction , logHandle , logTeam , logUser , sha256String )
74
76
import qualified Web.Scim.Class.User as Scim
77
+ import Web.Scim.Filter (Filter (.. ), rAttrPath , rCompareOp )
75
78
import qualified Web.Scim.Filter as Scim
76
79
import qualified Web.Scim.Handler as Scim
77
80
import qualified Web.Scim.Schema.Common as Scim
@@ -98,7 +101,7 @@ instance Scim.UserDB ST.SparTag Spar where
98
101
logScim
99
102
( logFunction " Spar.Scim.User.getUsers"
100
103
. logTokenInfo tokeninfo
101
- . Log. msg ( " filters: " <> show filter')
104
+ . logFilter filter'
102
105
)
103
106
$ do
104
107
mIdpConfig <- maybe (pure Nothing ) (lift . wrapMonadClient . Data. getIdPConfig) stiIdP
@@ -310,7 +313,7 @@ logScim context action =
310
313
case Scim. detail e of
311
314
Just d -> d
312
315
Nothing -> cs (Aeson. encode e)
313
- Log. err $ context . Log. msg errorMsg
316
+ Log. warn $ context . Log. msg errorMsg
314
317
pure (Left e)
315
318
Right x -> do
316
319
Log. info $ context . Log. msg @ Text " call without exception"
@@ -783,6 +786,21 @@ scimFindUserByEmail mIdpConfig stiTeam email = do
783
786
inspar = wrapMonadClient $ Data. lookupScimExternalId eml
784
787
inbrig = userId . accountUser <$$> Brig. getBrigUserByEmail eml
785
788
789
+ logFilter :: Filter -> (Msg -> Msg )
790
+ logFilter (FilterAttrCompare attr op val) =
791
+ Log. msg $ " filter:" <> rAttrPath attr <> " " <> rCompareOp op <> " " <> rCompValue val
792
+ where
793
+ rCompValue :: Scim. CompValue -> Text
794
+ rCompValue = \ case
795
+ Scim. ValNull -> " null"
796
+ Scim. ValBool True -> " true"
797
+ Scim. ValBool False -> " false"
798
+ Scim. ValNumber n -> cs $ Aeson. encodeToLazyText (Aeson. Number n)
799
+ Scim. ValString s ->
800
+ " sha256 "
801
+ <> sha256String s
802
+ <> (if isJust (UUID. fromText s) then " original is a UUID" else " " )
803
+
786
804
{- TODO: might be useful later.
787
805
~~~~~~~~~~~~~~~~~~~~~~~~~
788
806
0 commit comments