Sign up for Hasura Newsletter
Loading...

todosテーブル権限を設定する

todos テーブルの下の権限タブに移動して、関連する権限を追加します。

権限を挿入する

ログインしたユーザーが、新しいtodoエントリを作成して、is_publicとタイトル列だけを指定できるようにします。

  • 新しい役割を入力するテキストボックスに、“user”と入力します
  • 「挿入」権限の編集(鉛筆)アイコンをクリックします。これにより、下のセクションが開き、カスタムチェックを設定して列を許可できます。
  • カスタムチェックで、以下の条件を選択します。
{"user_id":{"_eq":"X-Hasura-User-Id"}}

todo行権限挿入

列の挿入権限の下で、title および is_public 列を選択します。

todos挿入列権限

最後に、列のプリセットの下で、X-HASURA-USER-ID への from session variable マッピングから user_id を選択します。

注:セッション変数は、各要求の認証サービスから返されるキーと値のペアです。ユーザーが要求すると、セッショントークンは USER-ID にマッピングされます。この USER-ID は許可で使用され、user_id 列にセッション変数 USER-ID の値に等しい値がある場合にのみ、テーブルへの挿入が許可されることを示すことができます。

Save Permissions をクリックします。

権限

todoエントリがパブリックになっているか、ユーザーがログインしていれば、todoエントリを表示できるようにします。

「選択」権限の編集アイコンをクリックします。カスタムチェックで、以下の条件を選択します。

{"_or":[{"is_public":{"_eq":true}},{"user_id":{"_eq":"X-Hasura-User-Id"}}]}

todos選択権限行

列選択権限の下で、すべての列を選択します。

todos選択列権限

Save Permissions をクリックする

権限

ユーザーがis_completed列しか更新できないようにします。

「更新」権限の編集アイコンをクリックします。更新前カスタムチェックで With same custom checks as insert を選択します。

そして、列更新権限の下で、is_completed 列を選択します。

todos更新権限

完了したら Save Permissions をクリックします。

権限

ログインしたユーザーのみ、todoエントリを削除できます。

最後に、削除権限についてはカスタムチェックの下で With same custom checks as insert, update を選択します。

todos削除権限

Save Permissions をクリックすると、todos テーブルのアクセス制御が完了します。

Did you find this page helpful?
Start with GraphQL on Hasura for Free
  • ArrowBuild apps and APIs 10x faster
  • ArrowBuilt-in authorization and caching
  • Arrow8x more performant than hand-rolled APIs
Promo
footer illustration
Brand logo
© 2023 Hasura Inc. All rights reserved
Github
Titter
Discord
Facebook
Instagram
Youtube
Linkedin