63 lines
1.6 KiB
Haskell
63 lines
1.6 KiB
Haskell
{-# 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|
|
|
<h1>
|
|
Käyttöoikeudet
|
|
^{keyValueTable permissions'}
|
|
|]
|
|
|
|
postPermissionsR :: UserID -> Handler Html
|
|
postPermissionsR = undefined
|