Add authentication to auction search.
[?]
Mar 20, 2016, 1:01 AM
5OI44E4EEVYOMHDWNK2WA7K4L4JWRWCUJUNN2UAUGE5VY4W7GTNACDependencies
- [2]
HALRDT2FAdded initial auction create route. - [3]
QMRKFEPGRefactor QDB to use a free monad algebra instead. - [4]
KEP5WUFJConvert project to stack-based build. - [5]
IZEVQF62Work in progress replacing sqlite with postgres. - [6]
Z7KS5XHHVery WIP. Wow. - [7]
ZP62WC47Begin conversion to build with stack. - [8]
LAROLAYUWIP - [9]
2XQD6KKKAdd invitation logic and clean up DBProg error handling. - [10]
EKI57EJRAdd alternative implementation of auction winner determination. - [11]
O5FVTOM6Undo JSON silliness, enable a couple more routes. - [12]
TNR3TEHKSwitch to Postgres + snaplet arch compiles. - [13]
GCVQD44VCreate amends endpoint, switch to UUID primary keys - [14]
A6HKMINBAttempting to improve JSON handling. - [15]
M4KM76DGMerge branch 'stackify' - [16]
NEDDHXUKReformat via stylish-haskell - [17]
NLZ3JXLOFix formatting with stylish-haskell. - [18]
LD4GLVSFMore database stuff. - [*]
64C6AWH6Rename Ananke -> Quixotic, project reboot.
Change contents
- edit in lib/Aftok/Auction.hs at line 14
import Aftok.Project (ProjectId) - replacement in lib/Aftok/Auction.hs at line 21
{ _initiator :: UserId{ _projectId :: ProjectId, _initiator :: UserId - replacement in lib/Aftok/Database/PostgreSQL.hs at line 94
Auction <$> fieldWith uidParserAuction <$> fieldWith pidParser<*> fieldWith uidParser - replacement in lib/Aftok/Database/PostgreSQL.hs at line 214
dbEval (CreateAuction pid auc) =dbEval (CreateAuction auc) = - replacement in lib/Aftok/Database/PostgreSQL.hs at line 218
( pid ^. _ProjectId( auc ^. (A.projectId . _ProjectId) - replacement in lib/Aftok/Database.hs at line 46
CreateAuction :: ProjectId -> Auction -> DBOp AuctionIdCreateAuction :: Auction -> DBOp AuctionId - edit in lib/Aftok/Database.hs at line 107
checkProjectAuth :: ProjectId -> UserId -> DBOp a -> DBProg ()checkProjectAuth pid uid act = dopx <- findUserProjects uidif any (\(pid', _) -> pid' == pid) pxthen pure ()else void . fc $ raiseOpForbidden uid UserNotProjectMember act - edit in lib/Aftok/Database.hs at line 116
- replacement in lib/Aftok/Database.hs at line 140
withProjectAuth (i ^. projectId) (i ^. invitingUser) actwithProjectAuth (i ^. P.projectId) (i ^. P.invitingUser) act - replacement in lib/Aftok/Database.hs at line 167
createAuction :: ProjectId -> Auction -> DBProg AuctionIdcreateAuction pid a = dowithProjectAuth pid (a ^. A.initiator) $ CreateAuction pid a[3.1306]createAuction :: Auction -> DBProg AuctionIdcreateAuction a = dowithProjectAuth (a ^. A.projectId) (a ^. A.initiator) $ CreateAuction afindAuction :: AuctionId -> UserId -> DBProg (Maybe Auction)findAuction aid uid =let findAuc = FindAuction aidin domaybeAuc <- fc findAuc_ <- traverse (\auc -> checkProjectAuth (auc ^. A.projectId) uid findAuc) maybeAucpure maybeAuc - replacement in server/Aftok/Snaplet/Auctions.hs at line 40
snapEval . createAuction pid $ Auction uid (Satoshi . raiseAmount $ req) (auctionEnd req)[2.3594]snapEval . createAuction $ Auction pid uid (Satoshi . raiseAmount $ req) (auctionEnd req)