あなたがやるべきことは、HttpAuthenticateから継承したCherryClassを宣言します。そうすればmaskとviewは自動的に保護されます。
この魔法を実行するために、HttpAuthenticateはAOP(アスペクト指向プログラミング)を使います。これは 基本的に、各maskとviewの先頭に追加するコードをつけくわえる、ということを意味します。
あなたは以下のメソッドをオーバライドすることもできます:
function: getPasswordListForLogin(login) これは有効なログイン/パスワードの組み合わせがなんであるかを指定するものです。入力値はユーザーが入力したログイン名です。このメソッドはこのログインに対し有効なすべてのパスワードのリストを返します。もしログイン名が正しくなければ空リストを返すだけです。
注意: 注意:一つのログイン名にマッチする複数のパスワードを返すことができるということは、どのログイン名でも有効に働く「マスターキー」のパスワードを持ったままにするということです。
mask または view: unauthorized() これはユーザーが間違ったログイン名/パスワードを3回続けて入力した時に表示するページです。
variable: login ユーザーがログインした時のログイン名が入っている文字列です。この文字列は誰もログインしていない場合は空になっています。
注意: 「ログアウト」メソッドがありません。ユーザーがブラウザのウィンドウを閉じた時に時動的にログアウトされます。
モジュールCookieAuthenticateの項も参照してください。
use HttpAuthenticate
CherryClass Root(HttpAuthenticate):
function:
def getPasswordListForLogin(login):
if login=='mySecretLogin': return ['mySecretPassword']
return []
mask:
def index(self):
<html><body>
Hello <py-eval="self.login">, I see you know the secret login and password ...
</body></html>
def unauthorized(self):
<html><body>
Hey dude, get out ! You're not allowed here if you don't know the login/password
</body></html>