ユーザー認証を制限する
デフォルトで使えるのは以下のよう。
使用しないモジュール名をDISABLED_MODULESに書けば表示はしなくなる。
認証関係のモジュールは以下にありそう。
osqa@OSQA:~$ ls forum_modules/ akismet facebookauth localauth pgfulltext robotstxt default_badges __init__.py oauthauth project_badges sphinxfulltext exporter __init__.pyc openidauth recaptcha sximporter
まずは、関連しそうなものを全部消してみる。
osqa@OSQA:~$ vi settings_local.py DISABLED_MODULES = ['facebookauth', 'oauthauth', 'openidauth', 'localauth', 'books', 'recaptcha', 'project_badges']
tempsigninが消えない。
あと、" Validate my email after I login."のチェックと、"External login services use OpenID technology, where your password always stays confidential between you and your login provider and you don't have to remember another one."のメッセージが消えない。
次にopenidauthだけ許可すると、ゾロゾロとアイコンが出てくる。
"Enter your OpenId Url"も出る。
きれいじゃないな。
openidauthをコピって書き換えるか。
osqa@OSQA:~/forum_modules$ mkdir googleaopenid osqa@OSQA:~/forum_modules$ cp -a openidauth/* googleaopenid/ osqa@OSQA:~/forum_modules$ cd googleaopenid/ osqa@OSQA:~/forum_modules/googleaopenid$ rm *.pyc
authentication.pyの中に、各サービスに対応するクラスが並んでいる。
Google以外を削除。
DISABLED_MODULESにopenidauthを追加。
これで、とりあえず目的は達成した。
tempsigninが表示される問題は、いくつかさわってみたが、解決できていない。