2017-02-14 99 views
0

問題描述在燒瓶stormpath,我怎麼路線基於用戶的Stormpath組

我正在使用Stormpath認證的燒瓶中的應用程序用戶的特定頁面登錄電子之後。在我的應用程序中,我有兩個用戶組:normal usersadmins。用戶登錄後,我想根據它們所屬的組將其重定向到特定的頁面。因此,如果用戶是普通用戶,他們將被重定向到/dashboard,如果他們是管理員,他們將被重定向到/admin_dashboard。截至目前,我有STORMPATH_REDIRECT_URL = '/dashboard',所以他們每次登錄時都會被重定向到/dashboard,而不管它們屬於哪個組。 如何根據他們的Stormpath組將其重定向到特定頁面?

當前的代碼片段:

注:我使用的是默認的燒瓶Stormpath登錄意見和應用程序允許通過谷歌社交登錄。

/app/__init__.py:

def create_app(config_name): 
    ... 
    # App config here 
    ... 
    stormpath_manager = StormpathManager() 
    stormpath_manager.init_app(app) 
    ... 
    return app 

/config.py:

class Config(Object): 
    ... 
    STORMPATH_REDIRECT_URL = '/dashboard' 
    ... 

/app/dashboard/views.py:

@dashboard_blueprint.route('/dashboard') 
@login_required 
@groups_required(['normal-users']) 
def dashboard(): 
    return render_template('dashboard/index.html', title="Dashboard") 

@dashboard_blueprint.route('/admin_dashboard') 
@login_required 
@groups_required(['admins']) 
def admin_dashboard(): 
    return render_template('dashboard/admin_index.html', title="Admin Dashboard") 
+0

您可以編輯帖子包括你當前的代碼? Flask視圖以及您如何使用Stormpath。 –

+0

@HaraldNordgren請參閱所需信息的編輯問題。讓我知道是否有其他信息是必要的! –

回答

0

SOLUTION

flask_stormpath具有User類,如here所示,其將Account作爲參數。從stormpath-sdk-python,我們可以看到Account有一個has_group(self, resolvable)函數,如看到here

用戶登錄後,根據用戶所屬的組,這樣可以顯示特定的頁面,我做了如下修改/app/dashboard/views.py,同時保持其他不變:

from flask_stormpath import User 
from flask_stormpath import current_user 

@dashboard_blueprint.route('/dashboard') 
@login_required 
def dashboard(): 
    if User.has_group(current_user, 'normal-users'): 
    return render_template('dashboard/index.html', title="Dashboard") 
    elif User.has_group(current_user, 'admins'): 
    return render_template('dashboard/admin_index.html', title="Admin Dashboard") 
    else: 
     return render_template('dashboard/error.html', title="Error Page")