hikiに閲覧に認証が必要なページの作成機能を追加

承前

hiki/command.rb#cmd_view最終行でgenerate_page( data )を呼ぶ前に

if not @plugin.auth? and @db.get_attribute(@p, :keyword).include? 'auth'
  data[:body] = "Please Login"
end

とする。認証させたいページのキーワードに"auth"を指定すると、ログインしていなければ見れなくなる。(edit_userを使わない場合は誰でも認証済み扱いなので注意)

追記:

この方法ではquote_page等のページデータを直接ロードするプラグインで回避できてしまう。ので、それがいやなら

  • そういうプラグインは使わない(使うとしたら改造して要認証化して使う)
  • hiki/storage.rbとかhiki/db/フォルダ内のファイルを改造(loadやload_cacheをいじればいいかな)

という感じかな。

あと、編集なんかの権限は command.rb#dispatch メソッド中でチェックされている。フッタ・ヘッダなんかも見せたくない場合は"if @cmd == 'edit'"の直前に

if @cmd == 'view' and not @plugin.auth? and @db.get_attribute(@p, :keyword).include? 'auth'
  raise PermissionError, 'Permission denied'
end

という感じにするといいかも。