tracプロジェクトでanonymousを許す場合、apacheの認証を「/login」にだけに設定しておけばよい。だけど、自分の環境では「tracプロジェクト全域」に認証をかけているため、事実上anonymousを利用することはない。したがって、一度認証を通過しているにも関わらずいちいち「ログイン」を選択しないとログイン状態にできないのは面倒だ(特に、チケットの発行や「私のチケット」を見るとき)
ということで、tracプロジェクト全域を認証して使う場合に、いちいち"ログイン"を選ばなくてもいいようにする。
ちなみに、権限をdropしてanonymousで利用できなくする、というのとは目的が違うので注意。
- 以下のパッチをあてる。
--- trac-0.9.5-ja-1/trac/web/auth.py 2006-01-09 16:48:09.000000000 +0900
常にログインした状態で利用させるのでログアウトは選択できないようにした(選択しても、またログイン状態になるので意味がない)
+++ trac-0.9.5-ja-1kai/trac/web/auth.py 2006-06-18 01:54:37.000000000 +0900
@@ -64,7 +64,8 @@
def get_navigation_items(self, req):
if req.authname and req.authname != 'anonymous':
yield ('metanav', 'login', '%s としてログイン中' % req.authname)
- yield ('metanav', 'logout',
+ if not self.config.getbool('trac' , 'must_login'):
+ yield ('metanav', 'logout',
Markup('<a href="%s">ログアウト</a>'
% escape(self.env.href.logout())))
else:
url: archives/2006/06/trac-2.html --- trac-0.9.5-ja-1/trac/web/standalone.py 2006-01-09 16:48:09.000000000 +0900
+++ trac-0.9.5-ja-1kai/trac/web/standalone.py 2006-06-18 01:16:14.000000000 +0900
@@ -288,7 +288,8 @@
return
req.remote_user = None
- if path_info == '/login':
+ if path_info == '/login' or \
+ env.config.getbool('trac' , 'must_login') :
auth = self.server.auths.get(project_name) or \
self.server.auths.get('*')
if not auth:
- trac.iniの[trac]セクションに設定を追加する。
[trac]
:
must_login = true