1 {-# LANGUAGE OverloadedStrings #-}
    2 module 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 Store.Config as C
   11 import Service.Messages
   12 import Action
   13 import View.Form
   14 import Model.Party
   15 import Model.Permission
   16 import Model.Authorize
   17 import Controller.Paths
   18 
   19 import {-# SOURCE #-} 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