美国主机Lunarpages

Mediawiki中文技术论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 6897|回复: 0

[配置] MediaWiki用户权限

[复制链接]
发表于 2010-12-21 14:00:14 | 显示全部楼层 |阅读模式
HostEase主机优惠
安装MediaWiki之后,用户的权限设置是完全开放的,需要做一些设置,对匿名用户的设置可以从修改LocalSettings.php入手,下载该文件,然后按照希望设置的用户权限,在文件中插入对应的设置语句,存储后再上传回去就可以了。
通过下面介绍的设置方法,可以阻止匿名用户注册,又或者阻止他们编辑,要求注册后才能够编辑,还可以设定注册前匿名用户可以查看那些页面。而在设置新用户的注册之后,管理人员仍可通过特殊页面手动为其他人创建用户。而用户的权限,则可以通过特殊页面内的User rights management进行管理。
LocalSettings.php用户权选设置相关选项

基本语法
$wgGroupPermissions['group']['right'] = true /* 或者 false */;
group代表用户组,right 是权限。如果是true ,就说明该用户组拥有该项权限,如果是false,就说明该用户组没有该项权限。
如果一个用户属于多个用户组,那么该用户拥有这些用户组中最高的权限。所有用户(包括未注册用户)包含在*用户组中,所有注册的用户包含在user用户组中。如果需要设置匿名用户不能编辑但是注册用户可以编辑,可以采取这样的方法,首先禁止所有用户编辑:
$wgGroupPermissions['*']['edit'] = false;
然后允许注册用户编辑:
$wgGroupPermissions['user']['edit'] = true;
  • 包含了所有用户,不仅仅是匿名用户(未注册用户),所以如果设置*的某一项权限是false,那么又要允许注册用户拥有该项权限就必须设置user的权限是true。

MediaWiki的默认设置

  1. $wgGroupPermissions = array();

  2. // Implicit group for all visitors
  3. $wgGroupPermissions['*']['createaccount']    = true;
  4. $wgGroupPermissions['*']['read']             = true;
  5. $wgGroupPermissions['*']['edit']             = true;
  6. $wgGroupPermissions['*']['createpage']       = true;
  7. $wgGroupPermissions['*']['createtalk']       = true;
  8. $wgGroupPermissions['*']['writeapi']         = true;
  9. //$wgGroupPermissions['*']['patrolmarks']      = false; // let anons see what was patrolled

  10. // Implicit group for all logged-in accounts
  11. $wgGroupPermissions['user']['move']             = true;
  12. $wgGroupPermissions['user']['move-subpages']    = true;
  13. $wgGroupPermissions['user']['move-rootuserpages'] = true; // can move root userpages
  14. //$wgGroupPermissions['user']['movefile']         = true;        // Disabled for now due to possible bugs and security concerns
  15. $wgGroupPermissions['user']['read']             = true;
  16. $wgGroupPermissions['user']['edit']             = true;
  17. $wgGroupPermissions['user']['createpage']       = true;
  18. $wgGroupPermissions['user']['createtalk']       = true;
  19. $wgGroupPermissions['user']['writeapi']         = true;
  20. $wgGroupPermissions['user']['upload']           = true;
  21. $wgGroupPermissions['user']['reupload']         = true;
  22. $wgGroupPermissions['user']['reupload-shared']  = true;
  23. $wgGroupPermissions['user']['minoredit']        = true;
  24. $wgGroupPermissions['user']['purge']            = true; // can use ?action=purge without clicking "ok"
  25. $wgGroupPermissions['user']['sendemail']        = true;

  26. // Implicit group for accounts that pass $wgAutoConfirmAge
  27. $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true;

  28. // Users with bot privilege can have their edits hidden
  29. // from various log pages by default
  30. $wgGroupPermissions['bot']['bot']              = true;
  31. $wgGroupPermissions['bot']['autoconfirmed']    = true;
  32. $wgGroupPermissions['bot']['nominornewtalk']   = true;
  33. $wgGroupPermissions['bot']['autopatrol']       = true;
  34. $wgGroupPermissions['bot']['suppressredirect'] = true;
  35. $wgGroupPermissions['bot']['apihighlimits']    = true;
  36. $wgGroupPermissions['bot']['writeapi']         = true;
  37. #$wgGroupPermissions['bot']['editprotected']    = true; // can edit all protected pages without cascade protection enabled

  38. // Most extra permission abilities go to this group
  39. $wgGroupPermissions['sysop']['block']            = true;
  40. $wgGroupPermissions['sysop']['createaccount']    = true;
  41. $wgGroupPermissions['sysop']['delete']           = true;
  42. $wgGroupPermissions['sysop']['bigdelete']        = true; // can be separately configured for pages with > $wgDeleteRevisionsLimit revs
  43. $wgGroupPermissions['sysop']['deletedhistory']   = true; // can view deleted history entries, but not see or restore the text
  44. $wgGroupPermissions['sysop']['deletedtext']      = true; // can view deleted revision text
  45. $wgGroupPermissions['sysop']['undelete']         = true;
  46. $wgGroupPermissions['sysop']['editinterface']    = true;
  47. $wgGroupPermissions['sysop']['editusercss']      = true;
  48. $wgGroupPermissions['sysop']['edituserjs']       = true;
  49. $wgGroupPermissions['sysop']['import']           = true;
  50. $wgGroupPermissions['sysop']['importupload']     = true;
  51. $wgGroupPermissions['sysop']['move']             = true;
  52. $wgGroupPermissions['sysop']['move-subpages']    = true;
  53. $wgGroupPermissions['sysop']['move-rootuserpages'] = true;
  54. $wgGroupPermissions['sysop']['patrol']           = true;
  55. $wgGroupPermissions['sysop']['autopatrol']       = true;
  56. $wgGroupPermissions['sysop']['protect']          = true;
  57. $wgGroupPermissions['sysop']['proxyunbannable']  = true;
  58. $wgGroupPermissions['sysop']['rollback']         = true;
  59. $wgGroupPermissions['sysop']['trackback']        = true;
  60. $wgGroupPermissions['sysop']['upload']           = true;
  61. $wgGroupPermissions['sysop']['reupload']         = true;
  62. $wgGroupPermissions['sysop']['reupload-shared']  = true;
  63. $wgGroupPermissions['sysop']['unwatchedpages']   = true;
  64. $wgGroupPermissions['sysop']['autoconfirmed']    = true;
  65. $wgGroupPermissions['sysop']['upload_by_url']    = true;
  66. $wgGroupPermissions['sysop']['ipblock-exempt']   = true;
  67. $wgGroupPermissions['sysop']['blockemail']       = true;
  68. $wgGroupPermissions['sysop']['markbotedits']     = true;
  69. $wgGroupPermissions['sysop']['apihighlimits']    = true;
  70. $wgGroupPermissions['sysop']['browsearchive']    = true;
  71. $wgGroupPermissions['sysop']['noratelimit']      = true;
  72. $wgGroupPermissions['sysop']['versiondetail']    = true;
  73. $wgGroupPermissions['sysop']['movefile']         = true;
  74. #$wgGroupPermissions['sysop']['mergehistory']     = true;

  75. // Permission to change users' group assignments
  76. $wgGroupPermissions['bureaucrat']['userrights']  = true;
  77. $wgGroupPermissions['bureaucrat']['noratelimit'] = true;
  78. // Permission to change users' groups assignments across wikis
  79. #$wgGroupPermissions['bureaucrat']['userrights-interwiki'] = true;
  80. // Permission to export pages including linked pages regardless of $wgExportMaxLinkDepth
  81. #$wgGroupPermissions['bureaucrat']['override-export-depth'] = true;

  82. #$wgGroupPermissions['sysop']['deleterevision']  = true;
  83. // To hide usernames from users and Sysops
  84. #$wgGroupPermissions['suppress']['hideuser'] = true;
  85. // To hide revisions/log items from users and Sysops
  86. #$wgGroupPermissions['suppress']['suppressrevision'] = true;
  87. // For private suppression log access
  88. #$wgGroupPermissions['suppress']['suppressionlog'] = true;

  89. /**
  90. * The developer group is deprecated, but can be activated if need be
  91. * to use the 'lockdb' and 'unlockdb' special pages. Those require
  92. * that a lock file be defined and creatable/removable by the web
  93. * server.
  94. */
  95. # $wgGroupPermissions['developer']['siteadmin'] = true;

复制代码

阻止新用户注册

  • $wgGroupPermissions['*' ]['createaccount'] = false;
注意:阻止新用户注册,此时管理员可以到特殊页面上的用户登录页面(Special:UserLogin)里,输入希望为其建立帐户的某人的用户名与电子邮件地址,然后点击通过eMail(by email)按钮递交,系统将创建帐号并将随机生成的密码发送到指定email里。

设定匿名用户可看的页面

$wgWhitelistRead = array (”Main Page”, “Special:Userlogin”, “Wikipedia:Help”);
匿名用户只能看到Main Page、登录页面以及帮助页面。
修改其他的例子:$wgWhitelistRead = array (”首页”, “Special:Userlogin”, “某某Wiki:Help”);

设置匿名用户权限

  • $wgGroupPermissions['*' ]['createaccount'] = false;
  • $wgGroupPermissions['*' ]['read'] = true;
  • $wgGroupPermissions['*' ]['edit'] = false;
  • $wgGroupPermissions['user' ]['createaccount'] = true;
  • $wgGroupPermissions['user' ]['edit'] = true;

设置匿名用户可读内容

  • $wgWhitelistRead = array( "Main Page", "Special:Userlogin" );
  • $wgGroupPermissions['*' ]['read'] = false;
注意:具体需要对应自己的站点链接,而对于多字节语言的MediaWiki,例如中文首页链接index.php?title=%E9%A6%96%E9%A1%B5,这首页中文字符PHP可能无法正确解码。需要利用urldecode()函数转换一下,写为:
  • $wgWhitelistRead = array( urldecode("%E9%A6%96%E9%A1%B5") ;

禁止匿名用户编辑

  • #$wgGroupPermissions = array();
  • $wgGroupPermissions['*createaccount'] = false;
  • $wgGroupPermissions['*']['read'] = true;
  • $wgGroupPermissions['*']['edit'] = false;
“编辑”标签仍会显示,但匿名用户点击时会被提示要求进行登录。
等式右侧的值决定各组成员的权限。左侧第一方括号内的’*'代表包括匿名用户在内的所有成员。登录用户控制存放在’user’组,这些将综合决定user_groups数据表中的成员权限。
这些设置取代了以前的wgWhitelistAccount和wgWhitelistEdit。
如此设定后,用户连首页和登录页面也看不到了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

美国HostEase虚拟主机一年198元

Archiver|手机版|小黑屋|Mediawiki中文技术论坛

GMT+8, 2024-12-27 04:43 , Processed in 0.052883 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表