2017-02-08 3 views
0

私はFlask-Stormpathを使ってPythonアプリケーションを作成しましたが、認証のためのグループを作成するためのドキュメントに従っています。グループ作成コードの5行を追加する前に、プログラムは完全に実行されます。flask-stormpathグループの作成

from os import environ 

from flask import Flask, session, request, jsonify, g, abort, url_for, redirect, render_template, g, flash, escape 
from flask_cors import CORS, cross_origin 

from flask_stormpath import StormpathManager, User, login_required, login_user, logout_user, user, groups_required 
from stormpath.error import Error as StormpathError 
from datetime import timedelta 

app = Flask(__name__, static_url_path='/static') 

CORS(app) 

app.config['DEBUG'] = True 
app.config['SECRET_KEY'] = environ.get('SECRET_KEY', 'this_should_be_configured') 
app.config['STORMPATH_API_KEY_ID'] = environ.get('STORMPATH_API_KEY_ID') 
app.config['STORMPATH_API_KEY_SECRET'] = environ.get('STORMPATH_API_KEY_SECRET') 
app.config['STORMPATH_APPLICATION'] = environ.get('STORMPATH_APPLICATION') 
app.config['STORMPATH_APPLICATION_HREF'] = environ.get('STORMPATH_APPLICATION_HREF') 
app.config['STORMPATH_CLIENT_APIKEY_ID'] = environ.get('STORMPATH_CLIENT_APIKEY_ID') 
app.config['STORMPATH_CLIENT_APIKEY_SECRET'] = environ.get('STORMPATH_CLIENT_APIKEY_SECRET') 
app.config['STORMPATH_URL'] = environ.get('STORMPATH_URL') 
app.config['STORMPATH_ENABLE_LOGIN'] = False 
app.config['STORMPATH_ENABLE_REGISTRATION'] = False 
app.config['STORMPATH_ENABLE_LOGOUT'] = False 

app.config['STORMPATH_COOKIE_DURATION'] = timedelta(minutes=60) 

stormpath_manager = StormpathManager(app) 
stormpath_manager.login_view = '.login' 

# Code to add groups to the application 
directory = stormpath_manager.application.default_account_store_mapping.account_store 
guests = directory.groups.create({'name': 'guests'}) 
members = directory.groups.create({'name': 'members'}) 
managers = directory.groups.create({'name': 'managers'}) 
admins = directory.groups.create({'name': 'admins'}) 

私は今Stormpathライブラリ内からコンパイル・エラーが発生します:

(venv) Marks-MacBook-Pro-2:flask_heroku markschulz$ python app.py Traceback (most recent call last): File "app.py", line 41, in directory = stormpath_manager.application.default_account_store_mapping.account_store File "/Users/markschulz/Projects/maid2match/venv/lib/python2.7/site-packages/flask_stormpath/init.py", line 266, in application ctx = stack.top.app AttributeError: 'NoneType' object has no attribute 'app'

を行う私は、次のコードをコンパイルするときに今(この場合はapp.pyのほんの最初の部分を示します)このエラーを回避するにはどうすればいいですか? 'directory'のコード行は、Stormpathのドキュメントから直接取得されます。

答えて

0

EDIT:「業務管理タイプが使用できるように、アプリの一部として簡単なアプリケーション固有の管理パネル」を

この答えは、あなたが構築している場合には機能しません。

ORIGINAL ANSWER:

あなたはこれを達成するためにStormpathの管理パネルを使用する必要があります。あなたはStormpathアカウントにログインすると:

は、ナビゲーションバーでGroupsボタンをクリックしてGROUP

  1. を作成します。

  2. Create a Groupボタンをクリックします。

  3. ディレクトリを選択し、名前と説明を入力します。

詳細な手順(画像あり)については、hereを参照してください。ナビゲーションバーでGroupsボタンをクリックしてグループに

をアカウントを追加する

左側のメニューでAccountsをクリックします。

Add Existing Accountをクリックして、グループに追加するアカウントを選択します。

詳細な手順(画像あり)については、hereを参照してください。

+0

私は、これがIT管理者タイプによるグループ管理の方法であることに同意します。このコードでは、単純なアプリケーション固有の管理パネルをアプリケーションの一部としてビルドして、ビジネス管理タイプを使用できるようにしています。私は完全なStormpath Adminパネルでこれらのタイプのいくつかを緩くしたくありません。 BTW私はStormpathからグループ管理のためのAPIサポートのサポートを受けていましたが、明らかに明示されています。これに関するドキュメントはPythonドキュメントにあり、Python-Flaskドキュメントには記載されていません。まだRTFMする必要があります。 – MarkS

+0

良い点。私が構築したフラスコのアプリは、IT管理者タイプのためのものでしたので、ビジネス管理者タイプのケースは考慮しませんでした。これを理解したらここに答えを加えてください。私は今それを働かせる方法について興味があります! –

関連する問題