{-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} module Handler.Profile where import Import import qualified Database.Esqueleto as E import Database.Esqueleto ((^.)) getProfileR :: Handler Html getProfileR = do (uid, user) <- requireAuthPair (admin_rights,lecturer_rights) <- runDB $ (,) <$> (E.select $ E.from $ \(adright `E.InnerJoin` school) -> do E.where_ $ adright ^. UserAdminUser E.==. E.val uid E.on $ adright ^. UserAdminSchool E.==. school ^. SchoolId return (school ^. SchoolName) ) <*> (E.select $ E.from $ \(lecright `E.InnerJoin` school) -> do E.where_ $ lecright ^. UserLecturerUser E.==. E.val uid E.on $ lecright ^. UserLecturerSchool E.==. school ^. SchoolId return (school ^. SchoolName) ) defaultLayout $ do setTitle . toHtml $ userIdent user <> "'s User page" $(widgetFile "profile")