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