2017-12-07 11 views
1

私はスーパーセットのログイン方法としてgoogle oauth2を追加しようとしています。ユーザは自分自身で登録することはできません。システム管理者は、権限/ロールでユーザがアクセスできないようにする必要があります。 Annonymousのユーザがlogedときgooge oauthでユーザーとログインを追加する方法

、私はすでにGoogleののOAuth2がスーパーセットにリンクされている

、私ができるユーザープロファイルをユーザーの電子メールが存在する場合、システムはチェックしなければならないとどのような役割は、彼に適用され、表示さログインgoogleボタンをクリックしてログインポップアップを開き、Googleアカウントの電子メールとパスワードを入力します。しかし、ログインが完了すると、ユーザーに権限がないことを知らせるメッセージが表示されます。

Login Page

After Login, with console error (page stays loading...)

質問は、私はスーパーセットのユーザーにGoogleユーザーを関連付ける、またはそれぞれの役割とこのGoogleのOAuth2の方法によりユーザーを登録することができますどのようにでしょうか?あなたが行うことができます

答えて

0

ことの一つが設定されているフラスコのApp BuilderのAUTH_USER_REGISTRATION = TrueAUTH_USER_REGISTRATION_ROLE = "some_default_role"

登録フローを変更する場合は、独自のSecurityManagerを設定してBaseSecurityManager.auth_user_oauthを無効にすることをお勧めします。私はそのメソッドのソースをコピーして変更します。

この目的のためにFABがpre_registrationフックを持っていれば、私は素晴らしいだろう。BaseSecurityManagerおそらく、FABが(作成前に)作成を計画しており、役割のリストを返すことができるUserオブジェクトを受け取るか、登録プロセスを中止する場合はNoneを受け取る可能性があります。

+0

superset_configのBaseSecurityManager.auth_user_oauthを上書きするようにCustomSecurityManagerとしてCUSTOM_SECURITY_MANAGERを設定できますか? – wsdfsilva

+0

はい、それはそれを行う方法です。 – mistercrunch

関連する問題