* どのユーザーがページを変更したかの記録を残したい [#tbf7f7a5]

- ページ: [[BugTrack2]]
- 投稿者: [[umorigu]]
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体新機能
- 投稿日: 2016-01-18 (月) 03:35:15
- バージョン: 1.5.0
- リリース予定バージョン: 1.5.1

** メッセージ [#o21c5ade]
ユーザー認証を通っていて、編集ユーザーを特定できる場合には、どのユーザーがページを編集したかを記録しておき、あとで参照できるようにしたい。

** 仕様 [#uf340ef7]

- wiki textに #author("変更日時","ユーザー名","フルネーム") を追加します
- backup listではこの情報を元にユーザー名を表示します

** 実装 [#l6059d4a]

- [[commit:29160f1743c28e607ad39e7604ec8075b05fcfeb]] author行をwiki textに追加
- [[commit:75b6a52daafbfd26df5d899c9ea9a4b8e92f7e47]] 認証ユーザーのprefix定義
- [[commit:26896abedaa94b9c3b2af465f0d6c14fd2d076bc]] ユーザーのFull nameを記録
- [[commit:e0226e99c53e23624259f42b2a4005abb4ebcbea]] Backup listにユーザー名を表示
- [[commit:4b06c17026994d9ed7a19f8cca87a291f769a4ff]] 編集時にauthor行をはずす
- [[commit:3618e79c684622da92c73d2150d5c4f9962783f7]] 編集時のTemplate読み込みでauthorをはずす
- [[commit:701dbd4da26cf6a4a0fb796beaae559032e98900]] 編集衝突時のauthor info
- [[commit:0de00ddd7cbbed03e9b274c712c7e02bcfefde65]] 外部認証時のfullnameをLDAP serverから取得する処理の修正
- [[commit:46036e1878d8a02fa83465b69a6b9c54ccf1a52]] 前の変更とは別のユーザーが更新した場合は更新Intervalに関わらず必ずバックアップを取る
- [[commit:46036e1878d8a02fa83465b69a6b9c54ccf1a52]] 前の変更とは別のユーザーが更新した場合は更新Intervalに関わらずバックアップを取る

--------
- これは難しそう。実現するのであればWikiテキストに表示されないメタデータを埋め込んでおくのがよいか?freeze等、タグの位置が重要な機能との整合性が課題 -- [[umorigu]] &new{2016-01-18 (月) 03:35:22};
- $_SERVER['REMOTE_USER']がや$_SERVER['REMOTE_ADDR']を参照してはどうでしょう -- [[_]] &new{2016-01-18 (月) 14:40:05};
- バックアップかどこかに追加データを仕込むとかいうネタがどこかの話題であったような無かったような…(思い出せない)。ひとまず代わりにコレを、[[BugTrack2/103]]: バックアップデータ構造の改善、[[official:質問箱4/535]]: 編集者履歴 --  &new{2016-01-18 (月) 20:17:20};
- GitHub に刺激を受けて作られた Federated Wiki のデータの粒度はパラグラフ単位のようですね。 -- [[henoheno]] &new{2016-01-20 (水) 00:23:04};
-- github.com/WardCunningham/Smallest-Federated-Wiki/blob/master/default-data/pages/welcome-visitors --  &new{2016-01-20 (水) 00:23:10};
-- github.com/WardCunningham/Smallest-Federated-Wiki/blob/master/server/sinatra/views/page.haml --  &new{2016-01-20 (水) 00:23:14};
- [[BugTrack2/103]] バックアップデータ構造の改善、これは大作ですね。よくまとまっていて今後の参考になります。編集者履歴は、昔から要望はあっても実現されていないようですね -- [[umorigu]] &new{2016-01-20 (水) 00:29:16};
- 実装しました。ページのデータを書き込む際には必ずpage_write()関数が呼ばれるようでしたのでこの中で変更者、変更日時を埋め込むようにしました。まだ抜けがありそうなのでレビュー&コメント大歓迎です -- [[umorigu]] &new{2016-02-03 (水) 02:15:52};
- $_SESSIONを使っている関係で下限がPHP4.1になっていますね。結局下限はどの程度を想定しているのでしょう -- [[.>./]] &new{2016-02-03 (水) 14:36:43};
- この機能(編集ユーザー名の記録)自体は直接$_SESSIONに依存してはいません。PukiWiki動作下限のPHP4.1から利用できます。認証をどの方式にするか、はPHPのバージョンによって利用可否が変わります。Basic認証ならPHP4.1で使えます。[[BugTrack2/375]]のForm認証と[[BugTrack2/373]]の外部認証は「クライアントが認証済みであること」をsessionによって維持しています。このためsessionが必要で、PHP5.1以降で動作します -- [[umorigu]] &new{2016-02-03 (水) 20:42:50};
- どちらがいいのか判断つかないので、メモ。テンプレート系の機能でwikiソースそのものを(部分)コピーする際に、#freeze と同様に#author をあらかじめ削除してから渡す方がいいのかどうか・・・・・(記録前に古いものが消えるはずなので問題にはならないでしょうが) --  &new{2016-02-03 (水) 22:58:55};
- 今Editの時には#authorを削除しています。ご指摘の通りテンプレート機能でも削除するのがよさそうです -- [[umorigu]] &new{2016-02-03 (水) 23:01:41};
- 編集時テンプレート読み込みでauthor行をを削除するようにしました -- [[umorigu]] &new{2016-02-04 (木) 00:00:30};

#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.043 sec.

SourceForge