ビジネスパーソン・ガジェット置場 empty lot for business

営業や仕事、それに伴う生活を便利に楽にするツール、ガジェットを作ります。既にあるツールも自分用にカスタマイズ。

python: Flaskアプリの作成19 管理者アクセス

備忘録です。

Flaskアプリケーションで簡単に管理者アクセスを実装する備忘録。

アクセス権限

本来もっと厳重にしないといけないと思うのですが、簡単にページにアクセス権限を付与する方法の備忘録です。

 

全ユーザーを表示するページにアクセス権限を付与する

設定としては、登録された全ユーザーの情報が一覧となっているページがあるとする。そのページはみんなが見れたらとんでもないことになるので、管理者だけが閲覧編集できるようにします。

本来もっとも重要なアクセスだと思うので、改ざんすることさえも不可なもっと厳重なものにしないといけないかなと思うのですが、今回は簡単な形で。

 

下記は全ユーザーを表示するページ。

# 全ユーザーを表示するページ
@app.route('/all-users')
@login_required
def users():
    our_users = Users.query.order_by(Users.id)
    return render_template('all_users.html', our_users=our_users)

ログインだけは必要としています。

 

アクセス権限を付与するには下記の通りに変更する。

# 全ユーザーを表示するページ
@app.route('/all-users')
@login_required
def users():
    id = current_user.id
    if id == 1:
        our_users = Users.query.order_by(Users.id)
        return render_template('all_users.html', our_users=our_users)
    else:
        flash('Need Admin user access...')
        return redirect(url_for('dashboard'))

idが1を管理者とすると、ログインしていてid=1のユーザーだけがアクセスできるという設定。

 

これだけで、他のユーザーさんに該当ページを見る権限をなくすことができた。

(もちろん、このコード書き換えられたらアウトです。)