Plone4以前でもメールアドレスをIDにしたい
Plone.jpのTips アドベントカレンダー企画が、本多さんよりまわってきました。
ほんのコネタですがこれでいいかしらん?
Plone4では、メールアドレスをIDにできるようになるそうですが、それ以前のPloneでもメアド=IDとしたいことは多いはずです。
しかし、標準ではごらんの通り、メールアドレスをIDにしようとするとエラーとなってしまいます。
これは、Ploneの内部、ZMI的にはPortal_registerationに当たるところで、'@'を含むIDを拒否するような設定になっているためです。
しかしながら、mixiを例に出すまでもなく、メールアドレスをIDとしておくメリットは結構あります。実在確認も容易ですし、ID忘れにも対応しやすいです。
もっとも、Ploneでは実在確認にメールを使うのはパスワードを管理者側で付与しない設定にしておけばいいだけですが…
プロダクトで、メールアドレスをIDにできるようにするものもあるようですが、カンタンなコピペでできますのでそれを紹介します。
ある意味あたりまえですが、そのPloneサイトのManager権限が必要です。
まずは、ZMIに行きます。
そして、portal_skins/custom へ移動します。
右上のドロップダウンからScript(Python)を選択し、Add を押します。
Python スクリプトの名前は、まぁ、なんでもいいです。
今回は 'enableMailID' 、と、結構ベタな名前にしてみます。
この名前は、他のものとカブらなければなんでもかまいません。
そして、以下の内容を入力します。
request = context.REQUEST
pr = context.portal_registration
pr.manage_editIDPattern('^[A-Za-z0-9][A-Za-z0-9_@.-]*$')
return 'ok'
そして、'test' タブをクリックすると、'ok' と表示されます。
書くだけでなく、一度実行する必要があります。
一度実行すればZopeを再起動するまで有効です。
つまり、再起動するたびに呼ばなければいけないのですが、それが面倒であれば、portal_skins/plone_prefs以下の適当な(たぶん、prefs_user_overviewがいいかな)をcustomizeしてこれを呼ぶようにするとか…どんどん邪道が激しくなりますけど(笑)
それでは次は、理不尽にデミオを乗りまわしてしまってその節はごめんなさい、嘉平さん、おねがいします。
- Category(s)
- Python/Zope/Plone
- The URL to Trackback this entry is:
- http://ns.jk.to/Nikki/moblog2009-12-11-17-40/tbping