Don't accept work timestamp from an external source.

[?]
Oct 20, 2016, 3:02 AM
BWN72T44GRRZ6K2OPN56FTLNEB7J7AGC7T2U5HSMLEKUPGJP2NUAC

Dependencies

  • [2] O722AOKE Add route to allow crediting of events to users/projects.
  • [3] RN7EI6IN Update database layer to use CreditTo
  • [4] NEDDHXUK Reformat via stylish-haskell
  • [5] BROSTG5K Beginning of modularization of server.
  • [6] POX3UAMT Enabling logging of time to contributor/project accounts
  • [*] W35DDBFY Factor common JSON conversions up into client lib module.

Change contents

  • edit in lib/Aftok/Json.hs at line 17
    [3.790]
    [3.3094]
    import Data.Thyme.Clock as C
  • replacement in lib/Aftok/Json.hs at line 250
    [3.4290][2.540:664]()
    parseLogEvent :: Object -> Parser LogEvent
    parseLogEvent x =
    (StartWork <$> x .: "start") <|> (StopWork <$> x .: "stop")
    [3.4290]
    [2.664]
    parseLogEntry :: Value -> Parser (C.UTCTime -> LogEntry)
    parseLogEntry = unversion parseLogEntry' where
    parseLogEntry' (Version 2 0) (Object x) = do
    creditTo' <- x .: "creditTo" >>= parseCreditTo
    eventCtr <- x .: "eventType" >>= nameEvent
    eventMeta' <- x .: "eventMeta"
    pure $ \t -> LogEntry creditTo' (eventCtr t) eventMeta'
  • edit in lib/Aftok/Json.hs at line 258
    [2.665][2.665:938]()
    parseLogEntry :: Value -> Parser LogEntry
    parseLogEntry = unversion parseLogEntry' where
    parseLogEntry' (Version 2 0) (Object x) =
    LogEntry <$> (x .: "creditTo" >>= parseCreditTo)
    <*> (x .: "event" >>= parseLogEvent)
    <*> (x .: "eventMeta")
  • replacement in server/Aftok/Snaplet/WorkLog.hs at line 47
    [2.1598][2.1598:1687]()
    Right entry -> snapEval $ createEvent pid uid (event.eventTime .~ timestamp $ entry)
    [2.1598]
    [3.6347]
    Right entry -> snapEval $ createEvent pid uid (entry timestamp)