Manual:利用者権限

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:User rights and the translation is 84% complete.

Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Tagalog • ‎dansk • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎русский • ‎српски / srpski • ‎українська • ‎हिन्दी • ‎মেইতেই লোন্ • ‎中文 • ‎日本語 • ‎한국어

利用者権限は、カスタマイズ可能な 利用者グループ に割り当てられる、特定のアクセス権限や実行権限です。 グループの利用者への追加/除去は、Special:UserRights 特別ページでできます。 Help:利用者権限と利用者グループ を参照してください。

このインターフェースへのアクセスは userrights 権限をもつ利用者によって管理されており、したがって、ビューロクラット 利用者グループに属する利用者だけがアクセスできます(標準仕様の場合)。 利用者グループの管理や割り当てについての情報は Manual:MediaWiki での利用者グループの設定 を参照してください。

グループの権限の変更

既定の MediaWiki インストレーションでは、特定の権限を既定のグループに割り当てます (下記参照)。 LocalSettings.php 内の $wgGroupPermissions 配列を以下の構文で編集することで既定の権限を変更できます。

$wgGroupPermissions['group']['right'] = true /* または false */;
既定では $wgGroupPermissions は includes/DefaultSettings.php として設定されていますが、LocalSettings.php にはありません。 その場合はそのファイルにそれを追加する必要があります。

メンバーが複数のグループを持つときは、任意のグループの最も順位が高い権限を取得します。 匿名利用者を含む、すべての利用者は'*'グループに所属します。また、登録利用者は全て'user'グループに所属します。 既定のグループに加えて、同じ配列を使用して新しい任意のグループを作成できます。

次の例では$wgWhitelistReadに挙げられたページ以外のページを全て閲覧不可能にした上で、登録利用者のみに対しては再び閲覧許可しています。

$wgGroupPermissions['*']['read']    = false;
# 以下の1行は既定値に含まれているため実際には必要ありません。'*' に false を設定しても、個別に true を設定した権限を持つグループに対しては無効になりません!
$wgGroupPermissions['user']['read'] = true;

次の例ではすべてのページの編集を無効にして、メールアドレスで確認された利用者に対してのみ再び有効にします。

# すべての利用者に対して無効にする
$wgGroupPermissions['*']['edit']              = false;
# user に対しても無効にする: 既定では '*' は編集を許可されていないが、'user' は編集できる
$wgGroupPermissions['user']['edit']           = false;
# メールアドレスの確認が済んだ利用者をグループに属させる
$wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
# グループを利用者一覧から隠す
$wgImplicitGroups[] = 'emailconfirmed';
# 最後に、お望みのグループに true を設定する
$wgGroupPermissions['emailconfirmed']['edit'] = true;

グループの新規作成とそのグループへの権限の割り当て

利用者グループの権限を定義することで新しい利用者グループを作ることができます。コードの$wgGroupPermissions['<group-name>']で、'group-name'の所に利用者グループの実際の名前を入力してください。

権限を割り当てるだけでなく、次の3つのページを適切な内容で作るべきです。

  • MediaWiki:Group-<group-name> (内容: グループ名)
  • MediaWiki:Group-<group-name>-member (内容: グループのメンバーの名前)
  • MediaWiki:Grouppage-<group-name> (内容: グループ ページのページ名)

標準では、ビューロクラットは誰に対しても権限を付与し、あるいは除去することができます。 しかしながら、Manual:$wgAddGroups Manual:$wgRemoveGroups を利用しているのならば、カスタマイズせねばならないかもしれません。

次の例では任意の「ninja」グループを作ります。利用者をブロックしページを削除することが可能で、そのグループの編集はデフォルトで最新の更新ログでは表示されません。

$wgGroupPermissions['ninja']['bot']    = true;
$wgGroupPermissions['ninja']['block']  = true;
$wgGroupPermissions['ninja']['delete'] = true;
注:利用者グループ名には、スペースを含めることは出来ません。例えば、'random user'という利用者グループを作りたい場合は'random-user''random_user'と言った名前を使って下さい。

例えば、次のようなページを作ることになる可能性があります。

  • MediaWiki:Group-ninja (内容: Ninjas)
  • MediaWiki:Group-ninja-member (内容: ninja)
  • MediaWiki:Grouppage-ninja (内容: Project:Ninjas)

これは当該グループを、インタフェースに「忍者組」と呼ばせ、メンバーは「忍者」と呼ばせ、「Project:忍者組」というグループ解説ページを設定します。

この例では、編集権限(ページの編集や作成)を標準で無効にして、Write と名付けられた利用者グループを作成し、そのグループに編集権限を付与します。利用者は Special:UserRights を通して、手作業でこのグループに追加することができます。

$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['user']['createpage'] = false;
$wgGroupPermissions['Write']['edit'] = true;
$wgGroupPermissions['Write']['createpage'] = true;

この例では、次のページを作ることになるかもしれません。

  • MediaWiki:Group-Write (内容: Writers)
  • MediaWiki:Group-Write-member (内容: Writer)
  • MediaWiki:Grouppage-Write (内容: Project:Write)

定義済み利用者グループの削除

MediaWikiでは、定義済みのグループが多く、用意されています。 これらのグループのほとんどは $wgGroupPermissions['<グループ名>'] の中で配列のキーをアンセットすることで除去できます。 詳細は下記を参照してください。

This example will eliminate the bureaucrat group entirely. It is necessary to ensure that all six of these variables are unset for any group that one wishes to remove from being listed at Special:ListGroupRights; however, merely unsetting $wgGroupPermissions will suffice to remove it from Special:UserRights. This code should be placed after any require_once lines that add extensions such as Extension:Renameuser containing code that gives bureaucrats group permissions by default.

unset( $wgGroupPermissions['bureaucrat'] );
unset( $wgRevokePermissions['bureaucrat'] );
unset( $wgAddGroups['bureaucrat'] );
unset( $wgRemoveGroups['bureaucrat'] );
unset( $wgGroupsAddToSelf['bureaucrat'] );
unset( $wgGroupsRemoveFromSelf['bureaucrat'] );

In some extensions (Flow, Semantic MediaWiki, etc.), rights are added during extension registration or in a registration function. In this case, it could be necessary to use a registration function in LocalSettings.php to remove some predefined user groups:

$wgExtensionFunctions[] = function() use ( &$wgGroupPermissions ) {
    unset( $wgGroupPermissions['oversight'] );
    unset( $wgGroupPermissions['flow-bot'] );
};

"user"というグループに関する注意

With the above mechanism, you can remove the groups sysop, bureaucrat and bot, which - if used - can be assigned through the usual user permission system. しかし、現在userグループを削除することは不可能です。 This group is not assigned through the usual permission system. 代わりに、ログインしているすべてのユーザーは自動的にそのグループのメンバーです。 これはMediaWikiでハードコードされており、現在は簡単に変更できません。

権限の一覧

以下の利用者権限は最新のバージョンのMediaWikiで利用可能です。 古いバージョンを利用している場合、wiki上の"Special:Version"を見て、"バージョン"カラムでカバーされているバージョンであるかご覧ください。

権限 説明 デフォルトでこの権限を持つ利用者グループ バージョン
閲覧
read ページを閲覧 - falseに設定すると、$wgWhitelistRead で特定のページを上書きする
警告 警告: Setting the user right "read" (allow viewing pages) to false will only protect wiki (article, talk, ...) pages, but uploaded files (images, files, docs... in the $wgUploadPath subdirectories) will always remain readable via direct access by default.
Use the information from Manual:Image Authorisation and img_auth.php pages when you have the need to restrict image views and file download access to only logged-in users.
*, user 1.5+
編集
applychangetags 自分の編集にタグを適用する user 1.25+
autocreateaccount 外部利用者アカウントで自動的にログイン - より限定されたバージョンの createaccount 1.27+
createaccount 新しい利用者アカウントを作成 - register / registration *, sysop 1.5+
createpage ページ (議論ページ以外) を作成 - edit 権限が必要 *, user 1.6+
createtalk 議論ページを作成 - edit 権限が必要 *, user 1.6+
edit ページを編集 *, user 1.5+
editsemiprotected 「Allow only autoconfirmed users」の保護を設定されたページを編集 - カスケード保護なし autoconfirmed, bot, sysop 1.22+
editprotected 「Allow only administrators」の保護を設定されたページを編集 - カスケード保護なし sysop 1.13+
minoredit 細部の編集の印を付ける user 1.6+
move ページを移動 - edit 権限が必要 user, sysop 1.5+
move-categorypages カテゴリのページを移動 - move 権限が必要 user, sysop 1.25+
move-rootuserpages 利用者ページ本体を移動 - move 権限が必要 user, sysop 1.14+
move-subpages 下位ページを含めてページを移動 - move 権限が必要 user, sysop 1.13+
movefile ファイルを移動 - move 権限が必要で、$wgAllowImageMoving が true である必要があります user, sysop 1.14+
reupload 既存のファイルに上書き - upload 権限が必要 user, sysop 1.6+
reupload-own 自身がアップロードした既存のファイルに上書き - upload 権限が必要 (グループに reupload 権限が既にある場合は不要であることにご注意ください) 1.11+
reupload-shared 共有メディアリポジトリ上のファイルにローカルで上書き - (if one is set up) with local files (upload 権限が必要) user, sysop 1.6+
sendemail 他の利用者にメールを送信 user 1.16+
upload ファイルをアップロード - edit 権限が必要で、 $wgEnableUploads を true にする必要がある user, sysop 1.5+
upload_by_url URL からファイルをアップロード - upload 権限が必要 (Prior to 1.20 it was given to sysops) 1.8+
マネジメント
bigdelete 大きな履歴があるページを削除 sysop 1.12+
block 他の利用者の編集をブロック - ブロックの選択肢は、編集ブロック、アカウント新規作成のブロック、同一IPアドレスの他の利用者の自動ブロックを含みます sysop 1.5+
blockemail 利用者のメール送信をブロック - ブロックされている利用者による Special:Emailuser インターフェイスの使用を禁止できるようにします sysop 1.11+
browsearchive 削除されたページを検索 - Special:Undelete を使用します sysop 1.13+
changetags 個々の版と記録項目の任意のタグの追加と削除 - 現在は拡張機能では使用されていません user 1.25+
delete ページを削除 1.5–1.11: ページを削除/復元できるようにする。
1.12+: ページを削除できるようにする。 復元については 'undelete' 権限が必要 (下記参照)
sysop 1.5+
deletedhistory 削除された履歴項目 (関連する本文を除く) を閲覧 sysop 1.6+
deletedtext 削除された本文と削除された版間の差分を閲覧 sysop
deletelogentry 特定の記録項目を削除/復元 - 特定のログエントリーの情報(操作の記録・要約欄・ある操作をした利用者名)を削除・復元することを許可します(標準では有効ではありません)。 1.20+
deleterevision ページの特定の版を削除/復元 - 特定のリビジョンの情報(リビジョンのテキスト、編集の要約、編集をした利用者)を削除または復元することを許可する(デフォルトでは利用できない、実験的な機能です) バージョン1.20でdeleterevisiondeletelogentryに分割されました標準では有効ではありません)。 1.6+
editcontentmodel ページのコンテンツモデルを編集 user 1.23.7+
editinterface ユーザーインターフェースを編集 - インターフェイス メッセージを含みます。 For editing sitewide CSS/JSON/JS, there are now segregate rights, see below. sysop, interface-admin 1.5+
editmyoptions 自身の個人設定を編集 * 1.22+
editmyprivateinfo 自身の非公開データ (例: メールアドレス、本名) を編集 * 1.22+
editmyusercss 自身のCSSファイルを編集 - prior to 1.31 it was assigned to everyone (i.e. "*") (note that this is not needed if the group already has the editusercss right) user 1.22+
editmyuserjs 自身のJavaScriptファイルを編集 - prior to 1.31 it was assigned to everyone (i.e. "*") (note that this is not needed if the group already has the edituserjs right) user 1.22+
editmyuserjson 自身のJSONファイルを編集 (note that this is not needed if the group already has the edituserjson right) user 1.31+
editmywatchlist 自身のウォッチリストを編集 (注: この権限がなくてもページを追加できる権限が他にもあります) * 1.22+
editsitecss サイト全体のCSSを編集 interface-admin 1.32+
editsitejs サイト全体のJavaScriptを編集 interface-admin 1.32+
editsitejson サイト全体のJSONを編集 interface-admin 1.32+
editusercss 他の利用者のCSSファイルを編集 interface-admin 1.16+
edituserjs 他の利用者のJavaScriptファイルを編集 interface-admin 1.16+
edituserjson 他の利用者のJSONファイルを編集 interface-admin 1.31+
hideuser 利用者名をブロックして公開記録から隠す - (既定では利用できません)

既定では、編集数が1000以下のユーザーのみ非表示にできます。 無効にするには$wgHideUserContribLimitを使用します。

1.10+
markbotedits 巻き戻しをボットの編集として扱う - m:Help:Administration#Rollback を参照 sysop 1.12+
mergehistory ページの履歴を統合 sysop 1.12+
pagelang ページの言語を変更 - $wgPageLanguageUseDB true でなければなりません 1.24+
patrol 他の利用者の編集を巡回済みにする - $wgUseRCPatrol true でなければなりません sysop 1.5+
patrolmarks 最近の更新で巡回済み印を閲覧 1.16+
protect 保護レベルを変更し、カスケード保護されたページを編集 sysop 1.5+
rollback 特定ページを最後に編集した利用者の編集を即時巻き戻し sysop 1.5+
suppressionlog 非公開記録を閲覧 1.6+
suppressrevision すべての利用者からの特定の版を見る、隠す、あるいは隠すのをやめる - バージョン1.13以前、この権限はhiderevisionという名前でした標準では有効ではありません)。 1.6+
unblockself 自身に対するブロックを解除 - この権限なしに、ブロック権限を有する管理者は他の管理者からブロックされたときにこれを解除することができません。 sysop 1.17+
undelete ページを復元 - requires deletedhistory right sysop 1.12+
userrights 全利用者権限を編集 - 任意の利用者に対してあらゆる(*)グループを付与/除去できるようにします
* $wgAddGroups$wgRemoveGroupsによって、allの代わりに特定のグループを追加または除去できる機能を設定できます
bureaucrat 1.5+
userrights-interwiki 他のウィキの利用者の利用者権限を編集 1.12+
viewmyprivateinfo 自身の非公開データ (例: メールアドレス、本名) を閲覧 * 1.22+
viewmywatchlist ウォッチリストを閲覧 * 1.22+
viewsuppressed すべての利用者から隠された版を閲覧 - つまり、"suppressrevision" の権限をより狭めたものです (注記:suppressrevision権限を備えたグループでは不用) 1.24+
管理
autopatrol 自身の編集を自動で巡回済みにする - $wgUseRCPatrol true でなければなりません bot, sysop 1.9+
deletechangetags データベースからタグを削除 - 現在拡張機能によって使用されています sysop 1.28+
import 他のウィキからページを取り込み - "transwiki" (ウィキ間転送) sysop 1.5+
importupload ファイルアップロードでページを取り込み - この権限はバージョン1.5までは、importrawと呼ばれていました。 sysop 1.5+
managechangetags タグの作成、有効化および無効化 - currently unused by extensions sysop 1.25+
siteadmin データベースをロックおよびロック解除 - ウェブサイトへの閲覧以外のインタラクションをすべてブロックします (not available by default) 1.5+
unwatchedpages ウォッチされていないページ一覧を閲覧 - 利用者がウォッチリストに登録していないページを一覧表示します sysop 1.6+
'テクニカル'
apihighlimits API要求でより高い制限値を使用 bot, sysop 1.12+
autoconfirmed IPベースの速度制限を受けない - 'autoconfirmed'グループに対して使用される。詳細な情報は下記のテーブルを参照。 autoconfirmed, bot, sysop 1.6+
bot 自動処理と認識させる - オプションで閲覧できます bot 1.5+
ipblock-exempt IPブロック、自動ブロック、広域ブロックを回避 sysop 1.9+
nominornewtalk 議論ページの細部の編集をした際に、新着メッセージとして通知しない - minor edit (細部の編集) 権限が必要 bot 1.9+
noratelimit 速度制限を受けない - レート制限の影響を受けません(この権利が導入される前は、設定変数$wgRateLimitsExcludedGroups がこの目的のために使用されていました) sysop, bureaucrat 1.13+
purge 確認なしでサイト上のページ・キャッシュを破棄 - URL パラメーター "&action=purge" user 1.10+
suppressredirect 転送ページを作成せずにページを移動 bot, sysop 1.12+
writeapi 書き込み API を使用 *, user, bot 1.13+
これらの権限はすべて別々のものを制御しますが、特定の操作を実行するために複数の権限が必要な場合もあります。 For example allowing people to edit but not read pages doesn't make sense, since in order to edit a page you must first be able to read it (Assuming no pages are whitelisted). Allowing uploads but not editing does not make sense, since in order to upload an image you must implicitly create an image description page, etc.

グループの一覧

次のグループは最新バージョンのMediaWikiで利用可能です。 古いバージョンではこれらの機能の一部が実装されていないものがあります。

グループ 説明 既定の権限 バージョン
* すべての利用者 (匿名利用者を含む)。 createaccount, createpage, createtalk, edit, editmyoptions, editmyprivateinfo, editmywatchlist, read, viewmyprivateinfo, viewmywatchlist, writeapi 1.5+
user 登録アカウント。 applychangetags, changetags, createpage, createtalk, edit, editcontentmodel, editmyusercss, editmyuserjs, editmyuserjson, minoredit, move, move-categorypages, move-rootuserpages, move-subpages, movefile, purge, read, reupload, reupload-shared, sendemail, upload, writeapi
autoconfirmed 少なくとも$wgAutoConfirmAgeの期間は活動していて少なくとも$wgAutoConfirmCount回編集している登録アカウント。 autoconfirmed, editsemiprotected 1.6+
bot bot権限を持つロボット(自動化スクリプトを目的とします)。 autoconfirmed, autopatrol, apihighlimits, bot, editsemiprotected, nominornewtalk, suppressredirect, writeapi 1.5+
sysop デフォルトでページを削除または復旧する、利用者をブロックやブロック解除などをできる利用者。 apihighlimits, autoconfirmed, autopatrol, bigdelete, block, blockemail, browsearchive, createaccount, delete, deletedhistory, deletedtext, editinterface, editprotected, editsemiprotected, editsitejson, edituserjson, import, importupload, ipblock-exempt, managechangetags, markbotedits, mergehistory, move, move-categorypages, move-rootuserpages, move-subpages, movefile, noratelimit, patrol, protect, proxyunbannable, reupload, reupload-shared, rollback, suppressredirect, unblockself, undelete, unwatchedpages, upload 1.5+
interface-admin users who can edit sitewide CSS/JS. editinterface, editsitecss, editsitejs, editsitejson, editusercss, edituserjs, edituserjson 1.32+
bureaucrat デフォルトで他の利用者の権限を変更できる利用者。 noratelimit, userrights 1.5+

MW 1.12から、$wgAutopromoteを使用して、利用者が(自動認証されメールの認証に関して)自動的に昇進する独自のグループ情報を作ることができます。 カスタムグループを作成するには、そのグループに権利を割り当てるだけです。

既定の権限

デフォルトの権限はDefaultSettings.php で定義されています。

新しい権限の追加

Information for coders only follows.

If you're adding a new right in core, for instance to control a new special page, you are required to add it to the list of available rights in User.php , $mCoreRights (example). If you're doing so in an extension , you instead need to use $wgAvailableRights .

You probably also want to assign it to some user group by editing $wgGroupPermissions described above.

If you want this right to be accessible to external applications by OAuth  or by bot passwords, then you will need to add it to a grant by editing $wgGrantPermissions .

// create ninja-powers right
$wgAvailableRights[] = 'ninja-powers';

//add ninja-powers to the ninja-group
$wgGroupPermissions['ninja']['ninja-powers'] = true;

//add ninja-powers to the 'basic' grant so we can use our ninja powers over an API request
$wgGrantPermissions['basic']['ninja-powers'] = true;

You also need to add right-[name] and action-[name] interface messages to /languages/i18n/en.json (with documentation in qqq.json). The right-* messages can be seen on Special:ListGroupRights and the action-* messages are used in a sentence like "You do not have permission to ...".

関連項目