• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:&tag(利用者,派閥,UI,フレームワーク,思い付き,実装,目次);

*目次 [#kacc1d6e]
#contents
#br
#lsx(new=true);
#br

*関連 [#ie095e00]
#related
#br
#lsx(tag=利用者,new=true,except=^利用者(/.*)?$)
#br
[[検索:利用者]]
#br

*利用者周辺のタグ [#d480fd97]
#tag(0,利用者)
#br
----

*利用者 [#mdb5b7ab]
RIGHT:[[:t/利用者]]


**アカウント/ロール [#mb19a12e]
-読む人
ブックマークしてるリピーターの人、検索サイトから来た飛び入り参加の人など。書く人の相手。
-書く人
コンテンツに詳しい人。サイトの原動力。
-構築する人
WikiEngineに詳しい人。プラグインを利用して、Wikiをより活用しやすくする人。Wikiを改造する人。
-管理する人
サイトの管理者。責任者。お金を出す人。何かあると怒られる人。管理者設定をする人。

また、アカウントをまとめて扱いたいときにも利用。
読む人1と読む人2を用意して、権限は同じでも有効期限が違うとか。


**アカウント/有効期限 [#za1edd78]
ログイン状態が続く時間。

-アカウントごと
-ロールごと

…に時間を設定。


**利用者/グループ [#u36bd4d6]
利用者権限をまとめて操作。

管理用ページ>グループ名>ユーザー名
管理用ページ>ユーザー名 (グループに属さないユーザー)
…のどちらも有効に。

ユーザーグループ一覧のページ。あるいは全ユーザーの集約ページ。
ユーザーグループ名 - 権限 のリストに○。
|~名前|~読み|~書き|
|みんな|○|○|

グループ名はリンク。グループを表すページへ。

ユーザーグループのページ。
ユーザー名 - 権限 のリストに○。
空欄はグループの権限を継承するという意味。
|~名前|~読み|~書き|
|Aさん|○||

対象ページはどう指定するか?
[[:t/?]]


**見られ方 [#p1029b16]
見解を利用していろいろな人向けの利用者ページを作成できるように。
元は個人のページ、別見解でグループ内での役割を元にした自分のページも作る、というように。
どの見解からも共通する項目(万人共通の客観的な情報)は埋め込みリンクにしておけばいい。自分宛の連絡(コメント)は元のページか独立したページにすれば連絡を取りこぼしたりしない。

見解は見る側が選択するので、十分な数だけ作っておける。見る側の邪魔にならない。
最もよく使われている見解が新規利用者やゲストの見解になるのも適切。
*思い付き [#g3c5a42b]

**利用者名にはIDから得たハッシュ値を付ける [#wf6442be]
IDを公開してもいいならIDをそのまま付けてもいい。
で…
-同じニックネームがあってもいいように
-いつでもニックネームを変えられるように
**投稿時の自動署名はない [#pd16299c]
名前は自分で書くこと。
**権限設定で、追加のみと既存部分を書き換えられるのを分ける。 [#c4bbe078]
これらは包含関係。(編集>追加のみ)


**「あなたと似ている利用者は…」 [#i501cde3]
*実装 [#ycb09d1c]

**情報はページに [#b2f2c704]
利用者は独立したオブジェクト。でも関連する情報はページに記録。
自分のページにある情報がそのアカウントの情報。

エクスポート/インポートが容易になる。
**管理者定義 [#f37faea2]
-管理者OpenIDをプログラムに埋め込み。複数可。
そのOpenID所有者が管理権を持つ。
-Wiki上のページに書くようにしても良い。
両方できるように。

[[キーワード:OpenID]]
**高い依存性 [#ka3a7703]
ページや派閥と関係が深い。
利用者についてはこれらを考えてから。


**アカウント [#kc47cc40]
利用者ごとのアカウントを。
特定のページに記述することが利用者登録になるように。
さらにグループ名を表すページを使って、そのグループに属する利用者を登録できるように。

***定義の書き方 [#me40c4cb]
 文字列(利用者の属性名とその値に適合するRegExp)→アクセス権定義

アクセス権定義は定義の対象になるページに書く。ページ/属性に書く。
そのページのアクセス権を管理者だけ編集可能にすれば、管理者がアクセス権定義をすることになる。

もしアクセス権定義ページを分けてサブディレクトリごとに用意できるようにするなら、ページがあるディレクトリとサブディレクトリについてのみ定義できるように。
***有効期間 [#v1e01248]
有効であり続ける条件
-最終使用時刻(最後にアカウント情報が参照された時刻)からの時間が有効期限内
アカウント情報を使わないような操作が続くと無効になる?→別にいい?
-同一端末を使っている
同じIPアドレス。同じUAかどうかは不要。
はてなでもやっている?
これがあると不便?PCで編集しながら携帯での見え方をチェックすることができない。

無効になる条件
-ユーザーからのリクエスト
「ログアウト」した時。
-有効期限を過ぎた
-アカウントが削除された
***利用者の属性 [#l8a89c2d]
利用者に関する情報で文字列で表せるもの全て。
Googleさんだけ個別化して、特定のページを見せるなら属性「User-Agent」に/googlebot/があることを調べる。


RIGHT:[[:t/アカウント]] [[:t/継承]]
***非公開編集 [#w4cb2e9a]
アカウントを持っている人がゲストとして書き込むのもいい。
編集履歴に自分のアカウントが記録されないので、「隠れた編集」や「非公開編集」とも言える。



*設計 [#ea7b3a6e]
利用者と権限を結び付ける際、引数の形式を考えるのが面倒なので、利用者をVisitorとしてページに渡す(コントロールクラスが)。
で、ページから利用者を参照、利用者をたらい回し。