niiyan's blog

niiyanの個人ブログ。

web2py 導入メモ(4): 管理者のみアクセス

Google App Engine では、app.yaml で login 設定することによって、アプリへのアクセスを制限することが可能です。たとえば、cron で定期的にデータを取得するような URL に、管理者以外のユーザーがアクセスできないようにしたい場合などにこれを行います。

なお、web2py でもログインしたユーザーにアクセスを制限することができますが、それとは別の話です。

Python アプリケーション設定 - Google App Engine - Google Code

web2py を利用している場合、web2py フォルダに app.yaml があります。これを次のようにすることで、foo アプリの bar.py の任意のメソッドへのアクセスを管理者のみに限定することができるようになりました。

- url: /foo/bar/.*
 script: gaehandler.py
 login: admin

- url: .*
 script: gaehandler.py  
 secure: optional

追加したのは上の 3 行で、下の 3 行よりも上に書かないとダメです。

これで、未ログインの状態で /foo/bar/ 以下の URL にアクセスすると、ログイン画面にリダイレクトされるようになります。