{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE NoImplicitPrelude #-} module Datarekisteri.Frontend.Handlers.Permissions where import Relude hiding (id) import Data.Morpheus.Client (raw, declareLocalTypesInline) import Yesod import Yesod.Auth import Datarekisteri.Core.Types import Datarekisteri.Frontend.ApiRequests import Datarekisteri.Frontend.Types import Datarekisteri.Frontend.Widgets declareLocalTypesInline "schema.gql" [raw| query PermissionsPage($id: UserID!) { user(id: $id) { id name nickname permissions { scope permission } } } |] -- declareLocalTypesInline "schema.gql" [raw| -- mutation UpdatePermissions($user: UserID, $permissions: [InputScopePermission!]!) { -- update(user: $user, permissions: $permissions) { -- id -- } -- } -- |] getPermissionsR :: UserID -> Handler Html getPermissionsR userID = defaultLayout $ do PermissionsPage {..} <- liftHandler $ apiRequest True (PermissionsPageArgs {id = userID}) PermissionsPageUser {..} <- maybe undefined pure user let permissions' = (\PermissionsPageUserPermissions {..} -> (show scope, show permission) :: (Text, Text)) <$> permissions setTitle "Käyttöoikeudet" [whamlet|

Käyttöoikeudet ^{keyValueTable permissions'} |] postPermissionsR :: UserID -> Handler Html postPermissionsR = undefined