• 追加された行はこの色です。
  • 削除された行はこの色です。
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を改造する人。
WikiEngineに詳しい人。機能を利用して、Wikiをより活用しやすくする人。Wikiを改造する人。
-管理する人
サイトの管理者。責任者。お金を出す人。何かあると怒られる人。管理者設定をする人。

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

----

→[[利用者/グループ]]
**アカウント/有効期限 [#za1edd78]
ログイン状態が続く時間。

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

…に時間を設定。


**ロールと権限の違い [#g55e9960]
-ロール
読む人、書く人、構築する人、管理する人
-権限
ゲスト(未登録)、登録済み、オーナー

ゲストで書く人と、登録済みで書く人は違う。

**ロール別のビュー [#ra968199]
書く人用ビュー、読む人用ビュー、管理する人用ビューなど。
表示されるメニュー(ボタン構成)が違う。

読む人にとっては変更不可能なサイトと同じ見た目になるように。
これでWikiっぽくなく。


**ロールをページ化、利用者を下位ページ化 [#f10d5145]
ロールをページにすれば、ページ/属性で利用者の権限をまとめて設定できる。
**利用者/グループ [#u36bd4d6]
利用者権限をまとめて操作。

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

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

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

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

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

----

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

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

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


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

**author [#c944710a]

 rel="author"

 rel="me"
**何と結び付けるか [#l06c7528]
システム側の利用者データをシステム外のどんな情報と結び付けるか。
-メールアドレス
-OpenID
-Twitterアカウント
OAuth
-ドメイン
組織を1つのアカウントに。
-なぞなぞの正解者
例えばはてなのような。でもID指定は必要。IDを利用者ページアクセスにすれば手間が省けてはてな式に近くなる。
パスワードでなくリマインダーのようなもの。
ID指定(または利用者ページにアクセス)→問い、答え入力→認証
-複数のOpenID、OAuth
複数登録、全てで認証されないといけない。順序は登録されている順序、認証処理によってどこを登録しているかばれるのは構わない。なぞなぞなどを組み合わせてもいい。


**要求権限の設定は複数 [#zc4dcb99]
ページの編集権限などは
(条件1 AND 条件2) OR (管理者向け条件)
のように複数条件をOR結合。
**いろいろな権限 [#qd0e5dac]

権限は基本は3つで十分。
-読み
-書き1(既存ページの編集だけ)
-書き2(ページの追加・削除・編集ほか)

ページの種類との組み合わせで…
-システムの一部になってるページの…読み、書き1、書き2

これらを特定ユーザー、特定ユーザーグループに与える。

※ページの種類というものは無くてあるページとその下位ページに読み書き条件を付けるということ。ページグループ×ユーザーグループ×3種の権限
***Tikiの場合 [#h78a247b]
これらを匿名ユーザー、登録済みユーザーに割り当てられる。

-閲覧
Can view page/pages (tiki_p_view)
-テンプレート使用
Can use the page as a tracker template (tiki_p_use_as_template)
-画像のアップロード
Can upload pictures to wiki pages (tiki_p_upload_picture)
-リバート
Can rollback pages (tiki_p_rollback)
-閲覧/バックリンク
View page backlinks (tiki_p_view_backlink)
-閲覧/履歴
Can view wiki history (tiki_p_wiki_view_history)
-閲覧/WikiTextソース
Can view source of wiki pages (tiki_p_wiki_view_source)
-閲覧/類似ページ
Can view similar wiki pages (tiki_p_wiki_view_similar)
-閲覧/ページの参照?をモジュールやフィードで
Can view in module and feed the wiki pages reference (tiki_p_wiki_view_ref)
-ページ名の変更
Can rename pages (tiki_p_rename)
-削除
Can remove (tiki_p_remove)
-凍結
Can lock pages (tiki_p_lock)
-メタシンボルの編集?
Can edit dynamic variables (tiki_p_edit_dynvar)
-編集/ページ
Can edit pages (tiki_p_edit)
-ページ操作に関わる権限割り当て
Can assign perms to wiki pages (tiki_p_assign_perm_wiki_page)
-編集/ちょっとした更新として保存
Can save as minor edit (tiki_p_minor)
-閲覧/会話
Can view contributions to a page (tiki_p_page_contribution_view)
-閲覧/許可されていないプラグイン
-閲覧/許可されていない機能
Can view unapproved plugin details (tiki_p_plugin_viewdetail)
-許可されていないプラグインの実行
-許可されていない機能の実行
Can execute unapproved plugin (tiki_p_plugin_preview)
-許可されているプラグインの実行
-許可されている機能の実行
Can approve plugin execution (tiki_p_plugin_approve)
-Wikiの管理
Can admin the wiki (tiki_p_admin_wiki)

--------

-管理者コメント
Can admin comments (tiki_p_admin_comments)
-コメント投稿
Can post new comments (tiki_p_post_comments)
-コメント削除
Can delete comments (tiki_p_remove_comments)
-他人のコメント編集
Can edit all comments (tiki_p_edit_comments)
-コメントに投票
Can vote comments (tiki_p_vote_comments)
-閲覧/コメント
Can read comments (tiki_p_read_comments)

#br

-DB 任意のクエリー実行?
Can execute arbitrary queries on a given DSN (tiki_p_dsn_query)

#br

-添付ファイル一覧関連の権限割り当て
Can assign perms to file gallery (tiki_p_assign_perm_file_gallery)
-Directory Batch Load使用
Can use Directory Batch Load (tiki_p_batch_upload_file_dir)
-ダウンロード
Can download files (tiki_p_download_files)
-編集/添付ファイル
Can edit a gallery file (tiki_p_edit_gallery_file)
-ZIPアップロード
Can upload zip files with files (tiki_p_batch_upload_files)
-添付ファイル一覧
Can list file galleries (tiki_p_list_file_galleries)
-添付ファイル管理
Can admin file galleries (tiki_p_admin_file_galleries)
-閲覧/添付ファイル一覧?
Can view file galleries explorer (tiki_p_view_fgal_explorer)
-添付ファイルのパス閲覧?
Can view file galleries path (tiki_p_view_fgal_path)
-閲覧/添付ファイル
Can view file galleries (tiki_p_view_file_gallery)
-アップロード
Can upload files (tiki_p_upload_files)
-添付ファイルのギャラリー作成
Can create file galleries (tiki_p_create_file_galleries)

#br

-ユーザーグループに参加
Can join or leave the group (tiki_p_group_join)
-グループにメンバー追加
Can add group members (tiki_p_group_add_member)
-閲覧/グループ
Can view the group (tiki_p_group_view)
-グループからメンバー削除
Can remove group members (tiki_p_group_remove_member)
-閲覧/グループメンバー
Can view the group members (tiki_p_group_view_members)

#br

-User can administer modules (tiki_p_admin_modules)
-Can admin mail-in accounts (tiki_p_admin_mailin)
-Can delete his/her own account (tiki_p_delete_account)
-Can admin integrator repositories and rules (tiki_p_admin_integrator)
-Administrator, can admin banners (tiki_p_admin_banners)
-Can view integrated repositories (tiki_p_view_integrator)
-Can change the categories of the object (tiki_p_modify_object_categories)
-Can view site stats (tiki_p_view_stats)
-Can view referrer stats (tiki_p_view_referer_stats)
-Can ban users or ips (tiki_p_admin_banning)
-Can admin the dynamic content system (tiki_p_admin_dynamic)
-Trust all user inputs including plugins (no security checks) (tiki_p_trust_input)
-Can use the importer (tiki_p_admin_importer)
-Can view action log for users of his own groups (tiki_p_view_actionlog_owngroups)
-Can use HTML in pages (tiki_p_use_HTML)
-Can send a link to a friend (tiki_p_tell_a_friend)
-Can subscribe to groups (tiki_p_subscribe_groups)
-Can search (tiki_p_search)
-Can share a page (email, twitter, facebook, message, forums) (tiki_p_share)
-Can report a link to the webmaster (tiki_p_site_report)
-Can view action log (tiki_p_view_actionlog)
-Can view site templates (tiki_p_view_templates)
-Can edit translations and create new languages (tiki_p_edit_languages)
-Administrator, can manage users groups and permissions, and all features (tiki_p_admin)
-Can edit menu option (tiki_p_edit_menu_option)
-Can admin cookies (tiki_p_edit_cookies)
-Can clean cache (tiki_p_clean_cache)
-Can remove association between two pages in a translation set (tiki_p_detach_translation)
-Can create new css suffixed with -user (tiki_p_create_css)
-Can edit site templates (tiki_p_edit_templates)
-Can edit menu (tiki_p_edit_menu)
-Can access site when closed (tiki_p_access_closed_site)
-Can invite user to my groups (tiki_p_invite_to_my_groups)
-Can admin mail notifications (tiki_p_admin_notifications)
-Can admin users (tiki_p_admin_users)
-Can edit object permissions (tiki_p_admin_objects)
-Can admin external feeds (tiki_p_admin_rssmodules)
-Can admin toolbars (tiki_p_admin_toolbars)

#br

-View page backlinks (tiki_p_view_backlink)
-Can view wiki history (tiki_p_wiki_view_history)
-Can view similar wiki pages (tiki_p_wiki_view_similar)
-Can view source of wiki pages (tiki_p_wiki_view_source)
-Can view in module and feed the wiki pages reference (tiki_p_wiki_view_ref)
-Can remove (tiki_p_remove)
-Can lock pages (tiki_p_lock)
-Can save as minor edit (tiki_p_minor)
-Can admin the wiki (tiki_p_admin_wiki)
-Can edit dynamic variables (tiki_p_edit_dynvar)
-Can edit pages (tiki_p_edit)
-Can assign perms to wiki pages (tiki_p_assign_perm_wiki_page)
-Can view contributions to a page (tiki_p_page_contribution_view)
-Can approve plugin execution (tiki_p_plugin_approve)
-Can upload pictures to wiki pages (tiki_p_upload_picture)
-Can use the page as a tracker template (tiki_p_use_as_template)
-Can rollback pages (tiki_p_rollback)
-Can rename pages (tiki_p_rename)
-Can execute unapproved plugin (tiki_p_plugin_preview)
-Can view unapproved plugin details (tiki_p_plugin_viewdetail)
-Can view page/pages (tiki_p_view)
**情報はページに [#b2f2c704]
利用者は独立したオブジェクト。でも関連する情報はページに記録。
自分のページにある情報がそのアカウントの情報。

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

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


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

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

アクセス権定義は定義の対象になるページ(ページ/属性)に書く?
RIGHT:[[:t/?]]

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

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

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


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



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