追い込みの週

先週末から面接があったり、気分転換に過去のコードを触ったりしてた (> <)

開発

今週いっぱいでモック開発のお仕事を終える予定。最後の追い込みをがんばるよー。

決着!プライベートコンテンツの作り方

ワークフローの仕組みを使って contributor ロールを追加する/しないのお話をしていた。workflow.zcml で ACL の制御はできるが、ルートコンテンツの扱いが特殊となるため、きれいな設計/仕様で意図したプライベートコンテンツを作ることはできないようだとやり取りしていた。

私の中でもいまいちだと思っていたし、コア開発者の Nouri も汎用的に使えないなら止めとこうと言うので Kotti 本体へ追加は止めた。アドオンのアプリ側で別途 workflow.zcml を設けることで任意の ACL 設定も行える。

また Web 画面から任意のコンテンツを追加すると、local_groups テーブルに、コンテンツを追加したユーザーが owner ロールを持つようになる。この処理の実装がどこにあるのか、分からなくて少しはまった。

def includeme(config):                                                              
    .. (snip) ..
    objectevent_listeners[
        (ObjectInsert, Content)].append(set_owner)
    .. (snip) ..

あー、イベントリスナーだった!

ということで、サーバー側で任意のユーザーに対して、デフォルトのロールを使い、workflow.zcml をカスタマイズして ACL 設定を行い、作成したユーザーのみが owner ロールを持つようにプライベートコンテンツを作れるようになった。あとはユーザーのサインアップ時にプライベートコンテンツを作成してあげれば良さそう。

歯科検診

先々週に削った3つの歯の銀のかぶせを付ける予定だったけど、2つの歯だけ治療してきた。

一番虫歯が大きかった歯は、先々週から日常生活を送ってた間に少し歯が欠けてしまったらしく、もう一回、銀のかぶせを作り直すことになってしまった。またこの金曜日に行ってくる。