私たちは職場でFlask + Jinja2でWebアプリケーションを作成しています。 アプリケーションには、ロールに基づいて特定のページにアクセスできるユーザーが登録されています。Jinja2テンプレートのアクセスできないリンクを隠す
@app.route('/action1')
@security_requirements(roles=['some_role'])
def action1():
...
デコレータチェックを飾った関数の呼び出しを渡すかどうか、ログオンしたユーザーの役割リストに「some_role」を持っていると判断した場合:サーバー側でこれを達成するために私達はちょうどページを飾る使用しますユーザーを「アクセスが拒否されました」ページにリダイレクトするだけです。
アプリケーションには、ブートストラップを使用して実装されたナビゲーションバーもあります。ナビゲーションバーは、基本テンプレートを使用して各ページに表示されます。現時点では、アプリケーションのすべてのページは、現在のユーザーがアクセスできるかどうかにかかわらず、ナビゲーションバーにエントリがあります。セキュリティホールではないにもかかわらず、アクセスできないユーザーページから隠したいと思っています。さらに、Jinjaテンプレート内の許可されたロールリストを複製することなく、この機能を実現したいと考えています。 Jinjaでこの機能を実現するには、現在のデコレータを使用することができますか?
あなたのデコレータは 'security_requirements'ですか?それを変更することは許可されていますか? – twil
@twil - はい、それは私のものです – reish