セッション管理

 編集のためのユーザ認証とは無関係(直交する)ユーザ認証をHiki入れたいと思い(もともとある編集権限の認証はコンテンツの内容を触るときだけ使って、追加する認証は閲覧や掲示板投稿権限などのユーザ管理をするのに使いたい)、hiki/session.rbを眺める。

 セッションの保存をみると、

    def save
      return until @user
      File.open( session_file, 'w' ) do |file|
        file.print @user
      end
    end

 こんな感じ。これを見る限り、セッション管理用のファイルにはユーザ名だけが記載されているような気がする。session["user"]とかでアクセスできるもんだと思っていたが、どうもuser名しか管理するつもりがないらしい。

 CGI::Sessionと同じように、session["user"]というインターフェースで、自由なオブジェクトをsessionに保存したいのだけど。ファイルにただuserを書いて、それを読み取ったりしているところは、PStoreかなんかで置き換えれば簡単に出来そうだけど、クラス自体を連想配列のようにアクセスできるようにする方法ががわからないなぁ。

 どっちにせよ、Hiki本体に手を入れるのは気が進まないですが(バージョンアップ時に不便だから)。

 どうしたもんか。