Skip to main content
Morphで構築するデータアプリでは、アクセスするユーザーの情報を活用してロールベースのアクセス制御を行うことができます。 Morphのフレームワーク上のPython関数では、context: MorphGlobalContextという引数を受け取ることができます。 このcontextuser_infoという変数にユーザー情報が格納されています。

MorphGlobalContext

Pythonでcontext.user_infoの変数から取得できるユーザー情報の詳細
context.user_infoの変数の型は以下の通りです。
変数説明
user_idユーザーIDstr
emailユーザーのメールアドレスstr
usernameユーザー名str
first_nameユーザーの名前str
last_nameユーザーの苗字str
rolesユーザーのプロジェクトロールlist[str]

プロジェクトロールの設定方法

MorphGlobalContextに格納されるユーザー情報のrolesという変数には、ユーザーのプロジェクトロールが格納されています。 プロジェクトロールは、プロジェクトごとにユーザーに設定できるロールです。プロジェクト詳細の”Member Access”タブで設定できます。 project-user-role

開発環境でのユーザー情報の使用方法

開発環境ではダッシュボードの認証情報を渡していないので、context.user_infoには、以下の固定の値が格納されます。

カスタマイズしたユーザー情報を使用する

/path/to/project/.mock_user_context.jsonを作成して、上記のJSONと同じ型で値を保存すると、自動的にcontext.user_infoの値が切り替わります。 rolesの設定値を変更してロールベースのアクセス制御の実装を行うことができます。
認証用のJSONデータを署名なしのJWTトークンとして、authorizationヘッダーに渡すことでも同様にユーザー情報を切り替えることができます。

サンプルコード

以下のサンプルコードは、ユーザーがAdminロールを持っている場合のみにPygwalkerを使用したダッシュボードを表示するコードです。