kokodayo.net
FSWikiまとめ
FreeStyleWiki
編集FAQ

ログイン

プラグイン

ユーザ属性とページ参照権の拡張 - FreeStyleWikiext_link

ログインのIDとパスワードを記憶する様にしました - FreeStyleWikiext_link

自動ログイン機能 - FreeStyleWikiext_link

TypeKeyを利用してユーザログインする機能 - FreeStyleWikiext_link

OpenIDを利用してユーザログインする機能 - FreeStyleWikiext_link

username: ユーザ名を表示します - FreeStyleWikiext_link

非ログイン状態でのページ閲覧結果をログインしたままで確認するためのプラグインパッケージ - FreeStyleWikiext_link



 過去の修正等々

現行バージョンは安定していますので備忘録として

閲覧制限の設定

親Wiki
 管理者 → 子Wiki管理者
 ユーザー → 子Wikiユーザー
 (よって、子Wikiを親Wikiから切り離して運用するには子Wikiの閲覧モードは管理者のみ)

子Wiki
 管理者
 ユーザー

ということは子Wikiの閲覧について、親Wikiユーザーであっても
子Wikiユーザーでない場合に規制をかけられると利用の幅は広がるかと思われるが、管理上は手間かも。

Patch

セッション管理の仕様を変更するパッチ - FreeStyleWikiext_link(未使用)
ログイン出来ない/ログイン後セッションがすぐ切れてしまう - FreeStyleWikiext_link

Fix

履歴/2008-7-16ext_link(適用済)
子Wikiでのセッションの維持ext_link(適用済)
ログアウトすると Software errorext_link
ログイン後に設定画面に入れないext_link
セッションクッキーのPATHがおかしくなる (3.5.6)ext_link
ログオンできなくなりましたext_link
Firefox + HTML4.01 Strict で子Wikiのログインに不具合が出ましたext_link
ブラウザを閉じてもログイン情報が保持される?ext_link

SafariでログインのIDとパスワードを記憶するパッチを使うと、通常のログインができない対応

F.Fox対策のトライ

ログアウト後に再度ログインができない対応

とりあえず使えるようにはなった。

lib/CGI2.pm

#ダミーでidを読ませる
my $id   = $wiki->config('session_id');
#パスを指定しない
my $cookie = CGI::Cookie->new(-name=>'CGISESSID',
-value=>$session->id(),-expires=>"+${limit}m",-path=>'');

lib/Util.pm

sub cookie_path {
	my $wiki = shift;
#	my $script_name = quotemeta($wiki->config('script_name'));
	my $path = $ENV{'REQUEST_URI'};
#	$path =~ s/\?.*//;
#	$path =~ s/$script_name$//;
	return $path;
}

  • CGI2.pmの -value -path あたりの引数の取り方が他と違うのが問題だった。
  • REQUEST_URIから取得したパスのセッションを上書きする状態でゴミもでないし速度も損なわない。取得するパスもルートのみなのでこれで様子見。
  • 従って、反面この場合の同時複数のセッションID保持が出来なくなることに。
  • とりあえずは閲覧速度優先で現状これ以上の必要もないのでF.Fox仕様変更まで放置。
  • 他 tmplのrefに値が含まれない場合の修正
パスがらみの修正(履歴/2008-7-16)を適用後元にもどした。

lib/CGI2.pm

my $cookie  = CGI::Cookie->new(-name=>'CGISESSID',
-value=>$session->id(),-expires=>'+'.$limit.'m',-path=>$path);

lib/Util.pm

sub cookie_path {
	my $wiki = shift;
	my $script_name = quotemeta($wiki->config('script_name'));
	my $path = $ENV{'REQUEST_URI'};
	$path =~ s/\?.*//;
	$path =~ s/$script_name$//;
	return $path;
}
  • F.Fox2,3で動作確認済
しかしまたもやエラーがでるようになり・・・

lib/CGI2.pm

my $cookie  = CGI::Cookie->new(-name=>'CGISESSID',
-value=>$session->id(),-expires=>'+'.$limit.'m',-path=>$path);

lib/Util.pm

sub cookie_path {
	my $wiki = shift;
#	my $script_name = quotemeta($wiki->config('script_name'));
	my $script_name = ($wiki->config('script_name'));
	my $path = $ENV{'REQUEST_URI'};
#	$path =~ s/\?.*//;
	$path =~ s/$script_name$//;
	return $path;
}

これで様子見

  • 書き込みがまだ重いことがある
    • 書き込み用のフォームを見直したところ解消

*ユーザーモードを継承しない設定が未解決。自動ログイン機能を入れるとうまくいくかも。

現状

lib/CGI2.pm
$ENV{PATH_INFO}の位置は現行版にならって↓とする方がよさそうです。

## コンストラクタ
sub new{
my $class = shift;
	$ENV{PATH_INFO} =~ s/^$ENV{SCRIPT_NAME}//e;
my $self = CGI->new();
	return bless $self,$class;
}

## CGI::Sessionオブジェクトを取得のmy $cookie=の部分
my $cookie = CGI::Cookie->new(-name=>'CGISESSID',
-value=>$session->id(),-expires=>'+'.$limit.'m',-path=>$path);

/lib/Util.pm

sub cookie_path {
my $wiki = shift;
my $script_name = quotemeta($wiki->config('script_name'));
my $path =~ s/$ENV{'REQUEST_URI'}//;
#	$path =~ s/\?.*//;
	$path =~ s/$script_name$//;
	return $path;
}

 
BugTrack-plugin/69ext_link

ログイン後移動するパッチを適用済みだったため
2008年12月29日の修正適用 これ、おそらく重要。