1 {-# LANGUAGE OverloadedStrings #-} 2 module Databrary.View.Authorize 3 ( authorizeSiteTitle 4 , htmlAuthorizeForm 5 ) where 6 7 import qualified Data.ByteString.Char8 as BSC 8 import qualified Data.Text as T 9 10 import qualified Databrary.Store.Config as C 11 import Databrary.Service.Messages 12 import Databrary.Action 13 import Databrary.View.Form 14 import Databrary.Model.Party 15 import Databrary.Model.Permission 16 import Databrary.Model.Authorize 17 import Databrary.Controller.Paths 18 19 import {-# SOURCE #-} Databrary.Controller.Authorize 20 21 authorizeSiteTitle :: Permission -> Messages -> T.Text 22 authorizeSiteTitle site = getMessage $ C.Path ["auth", "site", BSC.pack (show site), "title"] 23 24 htmlAuthorizeForm :: Authorize -> RequestContext -> FormHtml f 25 htmlAuthorizeForm a = htmlForm 26 ("Authorize " `T.append` partyName (partyRow child)) 27 postAuthorize (HTML, TargetParty $ partyId $ partyRow parent, AuthorizeTarget False $ partyId $ partyRow child) 28 (do 29 field "site" $ inputEnum True $ Just $ accessSite a 30 field "member" $ inputEnum True $ Just $ accessMember a 31 field "expires" $ inputText $ Just $ show $ authorizeExpires a 32 field "delete" $ inputCheckbox False) 33 (const mempty) 34 where 35 Authorization 36 { authorizeChild = child 37 , authorizeParent = parent 38 } = authorization a 39