Restringiracessowiki

From Meta, a Wikimedia project coordination wiki
Jump to: navigation, search
Blue Glass Arrow.svg MediaWiki logo.png
A proposal to move this page to MediaWiki.org was rejected.
Because the Template:MoveToMediaWiki tag was on the page for a year without any MediaWiki.org importers seeing fit to transwiki it, the move proposal was regarded as rejected by the MediaWiki.org community.

Em alguns casos, no uso da ferramenta Wiki, pode ser necessário restringir o acesso ao conteúdo apenas a usuários registrados.

Uma das mais proeminentes ferramentas de wiki é o MediaWiki, usado na Wikipedia. Mas volta e meia é preciso um pouco mais que a interface web para resolver alguns problemas comuns.

Em outro artigo, compartilhei como configurar URLs amigáveis no mediawiki.

Agora, como podemos restringir o acesso apenas a usuários registrados?

1 - Edite o arquivo de configuração do MediaWiki - LocalSettings.php adicionando as seguites opções ao final do arquivo:

  1. Permitir o acesso a determinados conteúdos

$wgWhitelistRead = array(

 "P%C3%A1gina_principal",
 "Especial:Userlogin",
 "-", 
 "MediaWiki:Monobook.css"

);

  1. Restringindo o resto

$wgGroupPermissions['*']['read'] = false; $wgGroupPermissions['*']['edit'] = false;

  1. Restringindo o registro de novos usuários
  2. mude para true para permitir novos registros

$wgGroupPermissions['*']['createaccount'] = false; 2 - Caso queria permitir que os usuários atuais convidem outras pessoas, adicione também:

  1. Permite que usuarios conhecidos criem contas

$wgGroupPermissions['user']['createaccount'] = true; 3 - Melhorando o texto da página de autenticação Apesar de estar tudo funcionando bem a esta altura, uma coisa ainda pode incomodar. A mensagem da tela de acesso negado pode ser um pouco confusa e feia. O título da página é "Erro" e a mensagem é "Autenticação Requisitada"

Para deixar isso mais bonito, acesse a página de edição das mensagens do MediaWiki, via web mesmo, no endereço Especial:Todas_as_mensagens do seu wiki. As mensagens que procuramos aqui são: loginreqlink, loginreqpagetext e loginreqtitle

Mas o problema é: o título da página (na janela do browser) continua sendo "Erro", e esta mensagem é a mesma usada em outros erros. Então, para mudar isso precisamos dar uma pequena "mexidinha" no código do mediawiki. Nada demais, apenas mudar a chamada da mensagem errorpagetitle para loginreqtitle.

Encontramos essa chamada no arquivo include/OutputPage.php, lá pela linha 978:


 $this->setPageTitle( wfMsg( 'loginreqtitle' ) );
 $this->setHTMLTitle( wfMsg( 'errorpagetitle' ) );

e mudamos para


 $this->setPageTitle( wfMsg( 'loginreqtitle' ) );
 $this->setHTMLTitle( wfMsg( 'loginreqtitle' ) );

e pronto!