<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>AjudaComListasDeControloDeAcesso</title></articleinfo><section><title>Listas de Controlo de Acesso</title><para>As <emphasis role="strong">Listas de Controlo de Acesso</emphasis> (ACLs) permitem ao administrador do wiki dar permissões de algumas acções (leitura, edição e eliminação) a utilizadores ou grupos, em páginas específicas. Elas permitem-lhe: </para><itemizedlist><listitem><para>ocultar algumas páginas do público. </para></listitem><listitem><para>publicar apenas algumas páginas de livre acesso. </para></listitem><listitem><para>dar permissões de edição a alguém ou a um grupo numa ou mais páginas. </para></listitem><listitem><para>permitir ou não permitir a eliminação de páginas. </para></listitem><listitem><para>controlar quem pode alterar as regras de administração de uma página. </para></listitem></itemizedlist><section><title>Conteúdos</title></section><section><title>Conceitos Básicos</title><para>As acções gerais que estão disponíveis para controlo são: </para><itemizedlist><listitem><para>read (leitura) - quem pode ler uma página </para></listitem><listitem><para>write (edição) - quem pode editar uma página </para></listitem><listitem><para>delete (eliminação) - quem pode eliminar uma página </para></listitem><listitem><para>revert (reposição) - quem pode repor um conjunto de páginas de uma versão anterior </para></listitem><listitem><para>admin (administração) - quem pode alterar a linha &quot;#acl&quot; de uma página. </para></listitem></itemizedlist><para>Utilizar ACLs no moin é tão fácil como incluir uma linha de controlo no topo da página que deseja controlar, como a seguinte: </para><screen><![CDATA[#acl SomeUser:read,write All:read]]></screen><itemizedlist><listitem override="none"><para><inlinemediaobject><imageobject><imagedata depth="15" fileref="https://flisol.info/moin_static198/sol/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Tem de já ter permissões de <code>admin</code> para poder adicionar ou modificar uma linha de acl deste tipo - consulte os tópicos <ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/AjudaNaConfigura%C3%A7%C3%A3o#">AjudaNaConfiguração</ulink> e <ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/AjudaNaAutoAdministra%C3%A7%C3%A3o#">AjudaNaAutoAdministração</ulink>. </para></listitem></itemizedlist><para>Isto irá permitir que o <code>SomeUser</code> possa ler e editar essa página, enquanto todos os outros utilizadores poderão ler, mas não editar a página (excepto se tiver efectuado uma configuração especial na configuração do sítio). </para><para>Os anexos são igualmente protegidos pelas ACLs da página a que pertencem, mesmo estando localizadas no servidor de wiki do moin. </para><para><inlinemediaobject><imageobject><imagedata depth="15" fileref="https://flisol.info/moin_static198/sol/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Os anexos <emphasis>não</emphasis> são protegidos quando o servidor estiver configurado para acesso directo aos anexos (ou seja, quando a opção <code>attachments</code> é utilizada no wikiconfig.py). </para><para><anchor id="Configuração"/> </para></section><section><title>Configuração</title><para>Estes são os itens de configuração utilizados na configuração de ACLs num sítio moin. </para><informaltable><tgroup cols="3"><colspec colname="col_0"/><colspec colname="col_1"/><colspec colname="col_2"/><tbody><row rowsep="1"><entry colsep="1" rowsep="1"><para><emphasis role="strong">Entrada</emphasis></para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">Por omissão</emphasis></para></entry><entry colsep="1" rowsep="1"><para><emphasis role="strong">Descrição</emphasis></para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>acl_rights_before</para></entry><entry colsep="1" rowsep="1"><para><code>u&quot;&quot;</code></para></entry><entry colsep="1" rowsep="1"><para>aplicada <emphasis role="strong">antes</emphasis> da página ou ACLs por omissão</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>acl_rights_after</para></entry><entry colsep="1" rowsep="1"><para><code>u&quot;&quot;</code></para></entry><entry colsep="1" rowsep="1"><para>aplicada <emphasis role="strong">depois</emphasis> da página ou ACLs por omissão</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>acl_rights_default</para></entry><entry colsep="1" rowsep="1"><para><code>u&quot;Trusted:read,write,delete,revert \</code></para><para><code>Known:read,write,delete,revert \</code></para><para><code>All:read,write&quot;</code></para></entry><entry colsep="1" rowsep="1"><para>utilizada <emphasis role="strong">apenas</emphasis> quando <emphasis role="strong">nenhuma outra</emphasis> ACL é definida numa página acessível</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>acl_rights_valid</para></entry><entry colsep="1" rowsep="1"><para><code>[&quot;read&quot;, </code> <code>&quot;write&quot;, </code> <code>&quot;delete&quot;, </code> <code>&quot;revert&quot;, </code> <code>&quot;admin&quot;]</code></para></entry><entry colsep="1" rowsep="1"><para>Estas são as permissões (conhecidas) aceitáveis (e o local a expandir, se necessário).</para></entry></row><row rowsep="1"><entry colsep="1" rowsep="1"><para>acl_hierarchic </para></entry><entry colsep="1" rowsep="1"><para> False </para></entry><entry colsep="1" rowsep="1"><para> Activa o processamento de ACL de forma hierárquica, ver <link linkend="Hierarquia">#Hierarquia</link> </para></entry></row></tbody></tgroup></informaltable><para>Portanto, agora sabe o que <emphasis>faz</emphasis>, mas o que <emphasis>significa</emphasis>? </para><itemizedlist><listitem><para>&quot;antes&quot; significa <emphasis role="strong">forçar algo</emphasis> (isto deve-se à primeira correspondência do algoritmo)  Utilize isto para os administradores e editores de páginas de todo o seu wiki. </para></listitem><listitem><para>&quot;por omissão&quot; significa <emphasis role="strong">o que acontece se nenhum ACL for definido na página</emphasis>. Isto é igual a definir exactamente estes ACLs numa página. Estes são também as permissões que se fundem se escrever <emphasis role="strong">Default</emphasis> (por omissão) entre as ACLs da página. </para></listitem><listitem><para>&quot;depois&quot; significa <emphasis role="strong">não forçar algo</emphasis> acidentalmente (como por exemplo dar permissões de leitura a todos) </para></listitem></itemizedlist><para>Ajuda pensar nelas como o processamento de ACLs baseadas em páginas antes, durante e depois. </para><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="https://flisol.info/moin_static198/sol/img/idea.png" width="16"/></imageobject><textobject><phrase>(!)</phrase></textobject></inlinemediaobject> A anotação u&quot;&quot; utilizada nas strings de configuração significa Unicode e <emphasis>tem de lá estar</emphasis> - para mais informações, consulte o tópico <ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/AjudaNaConfigura%C3%A7%C3%A3o#">AjudaNaConfiguração</ulink>. </para><para><inlinemediaobject><imageobject><imagedata depth="15" fileref="https://flisol.info/moin_static198/sol/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Se não utilizar nomes <ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/CamelCase#">CamelCase</ulink> nas definições do seu grupo, exemplo PROJECTGroup é necessário alterar o <emphasis>page_group_regex</emphasis> para u'[a-z0-9,A-Z]Group$'  </para></section><section><title>Sintaxe</title><para>A sintaxe de cada linha é a seguinte: </para><screen><![CDATA[#acl [+-]User[,SomeGroup,...]:[right[,right,...]] [[+-]OtherUser:...] [[+-]Trusted:...] [[+-]Known:...] [[+-]All:...] [Default]]]></screen><para>Legenda: </para><itemizedlist><listitem><para><emphasis role="strong">User</emphasis> é o nome de utilizador e o que se segue só é activado se o utilizador coincidir.  </para></listitem><listitem><para><emphasis role="strong">SomeGroup</emphasis> é um nome de página correspondente ao <code>page_group_regex</code> com algumas linhas no formato &quot; * Member&quot; (ver <link linkend="Grupos">#Grupos</link>). </para></listitem><listitem><para><emphasis role="strong">Trusted</emphasis> é um grupo especial que contém todos os utilizadores autenticados que utilizaram uma autenticação de HTTP básica. </para></listitem><listitem><para><emphasis role="strong">Known</emphasis> é um grupo especial que contém todos os utilizadores válidos (por exemplo, ao utilizar a cookie). </para></listitem><listitem><para><emphasis role="strong">All</emphasis> é um grupo especial que contém todos os utilizadores (utilizadores conhecidos e anónimos). </para></listitem><listitem><para><emphasis role="strong">Default</emphasis> é um registo especial que insere num determinado local os registos do <code>acl_rights_default</code> (ver <link linkend="PorOmissão">#PorOmissão</link>). </para></listitem><listitem><para><emphasis role="strong">right</emphasis> pode ser uma palavra arbitrária como read, write, delete, revert, admin. </para></listitem></itemizedlist><para>Apenas as palavras existentes no <code>acl_rights_valid</code> são aceites, as restantes são ignoradas. É permitido não especificar permissões, o que significa que não são dadas permissões. </para><para><inlinemediaobject><imageobject><imagedata depth="15" fileref="https://flisol.info/moin_static198/sol/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Não deixe espaços em branco entre o nome e as permissões - <code>All: write,read</code> <emphasis role="strong">não</emphasis> é uma string de ACL válida. </para></section><section><title>Permissões disponíveis</title><para>Estas são as permissões disponíveis que pode utilizar num registo de ACL. Tenha em atenção que não é permitido Eliminar<emphasis role="strong"/>Página e Renomear<emphasis role="strong"/>Página se o utilizador não for <code>Known</code>, mesmo que a permissão <code>delete</code> seja atribuída. </para><glosslist><glossentry><glossterm>read</glossterm><glossdef><para>Os utilizadores com esta permissão poderão ler o texto dessa página. </para></glossdef></glossentry><glossentry><glossterm>write</glossterm><glossdef><para>Os utilizadores com esta permissão poderão editar o texto dessa página. </para></glossdef></glossentry><glossentry><glossterm>delete</glossterm><glossdef><para>Os utilizadores com esta permissão poderão eliminar essa página e respectivos anexos </para></glossdef></glossentry><glossentry><glossterm>revert</glossterm><glossdef><para>Os utilizadores com esta permissão poderão repor uma versão anterior dessa página. </para></glossdef></glossentry><glossentry><glossterm>admin</glossterm><glossdef><para>Os utilizadores com esta permissão terão permissões administrativas nessa página. Isto significa que estes utilizadores poderão alterar as definições de ACL, incluindo a atribuição/revogação de permissões administrativas a/de outros utilizadores. </para></glossdef></glossentry></glosslist><para><inlinemediaobject><imageobject><imagedata depth="15" fileref="https://flisol.info/moin_static198/sol/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> A permissão <emphasis role="strong">rename</emphasis> não existe isoladamente: para renomear uma página é necessário que o utilizador tenha permissões de escrita, de edição e de eliminação. </para></section><section><title>Processar lógica numa só página</title><para>Quando algum utilizador tentar aceder a um recurso protegido pelas ACLs, estas serão processadas pela ordem que forem localizadas. A <emphasis role="strong">primeira ACL que corresponda ao utilizador</emphasis> ditará se o utilizador tem acesso a esse recurso ou não, e o processamento terminará assim que o utilizador tenha um registo de ACL correspondente </para><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="https://flisol.info/moin_static198/sol/img/idea.png" width="16"/></imageobject><textobject><phrase>(!)</phrase></textobject></inlinemediaobject> Devido a esse algoritmo <emphasis>first match</emphasis> (primeira ACL correspondente), deve dispor as suas ACLs da seguinte forma: primeiro os nomes de utilizadores individuais, depois os grupos especiais, depois os grupos gerais, depois os <code>Known</code> e por fim os <code>All</code>. </para><para>Por exemplo, a ACL que se segue define que <code>SomeUser</code> pode ler e editar os recursos protegidos por essa ACL, enquanto que qualquer membro do grupo <code>SomeGroup</code> (para além do <code>SomeUser</code>, caso faça parte do grupo) pode também administrá-los, e os restantes utilizadores poder lê-los. </para><screen><![CDATA[#acl SomeUser:read,write SomeGroup:read,write,admin All:read]]></screen><para>Para tornar o sistema mais flexível, existem também dois modificadores: os prefixos '+' e '-'. Quando são utilizados, o processamento só termina quando a permissão pedida a um utilizador específico corresponda ao utilizador e à(s) permissão(ões) atribuída(s) no registo da ACL, mas continuará se estiver à procura de outra permissão (ou outro utilizador). </para><para>No caso de '+' a permissão será atribuída, no caso de '-' a permissão será negada (no caso do processamento terminar). </para><para>Como exemplo e assumindo que o <code>SomeUser</code> é um membro do grupo <code>SomeGroup</code>, a ACL em cima podia ser igualmente definida assim: </para><screen><![CDATA[#acl -SomeUser:admin SomeGroup:read,write,admin All:read]]></screen><para>Este exemplo só é especial para o <code>SomeUser</code>, porque quando a permissão de administração for solicitada para o <code>SomeUser</code>, esta será negada e o processamento termina. Em qualquer outro caso, o processamento continua. </para><para>Ou ainda: </para><screen><![CDATA[#acl +All:read -SomeUser:admin SomeGroup:read,write,admin]]></screen><para>O <code>+All:read</code> significa que quando um utilizador pedir permissão de leitura, esta será atribuída e o processamento termina. Em qualquer outro caso, o processamento continua. Se a permissão de administração for solicitada para o <code>SomeUser</code>, esta será negada e o processamento termina. Em qualquer outro caso, o processamento continua. Por último, se um membro do grupo <code>SomeGroup</code> solicitar alguma permissão que lá esteja especificada, esta será atribuída, caso não esteja, será negada. Todos os outros utilizadores não têm outras permissões, excepto se forem atribuídas na configuração. </para><para>Tenha em consideração que provavelmente não quererá utilizar os segundo e terceiro exemplos nos registos de ACLs de uma página. No entanto, são muito úteis nos registos da configuração do sítio </para><para><anchor id="PorOmissão"/> </para></section><section><title>Herdar valores por omissão</title><para>Pode ser útil, por vezes, atribuir permissões a alguém sem afectar em demasia as permissões por omissão. Por exemplo, vamos supor que tem os seguintes registos na sua configuração: </para><screen><![CDATA[acl_rights_default = u"TrustedGroup:read,write,delete,revert All:read"
acl_rights_before  = u"AdminGroup:admin,read,write,delete,revert +TrustedGroup:admin"]]></screen><para>Agora, tem algumas páginas nas quais quer atribuir permissões de escrita ao <code>SomeUser</code>, mas também quer manter o comportamento por omissão para   All e para o <code>TrustedGroup</code>.  Pode fazê-lo facilmente utilizando o registo <emphasis role="strong">Default</emphasis> (por omissão): </para><screen><![CDATA[#acl SomeUser:read,write Default]]></screen><para>Isto irá inserir os registos a partir do <code>acl_rights_default</code> exactamente no local onde a palavra Default for colocada. Por outras palavras, o registo em cima, com a configuração definida dessa forma, é equivalente ao registo seguinte: </para><screen><![CDATA[#acl SomeUser:read,write TrustedGroup:read,write,delete,revert All:read]]></screen><para>Vamos ver melhor o primeiro exemplo desta secção: </para><para><code>acl_rights_before  = u&quot;AdminGroup:admin,read,write,delete,revert +TrustedGroup:admin&quot;</code> </para><para>As ACLs são processadas pela ordem &quot;before&quot; (antes), &quot;page/default&quot; (página/por omissão) e &quot;after&quot; (depois), &quot;da esquerda pata a direita&quot;. </para><para>Assim começa à esquerda de &quot;before&quot; com <code>AdminGroup:...</code> - isto coincide se for um membro do <ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/AdminGroup#">AdminGroup</ulink>. Se coincidir, obtém essas permissões (arwdr) e o processamento de ACL TERMINA. </para><para>Se não coincide, o processamento de ACL continua com o <code>+TrustedGroup:admin</code> - isto coincide se for um membro do <code>TrustedGroup</code>. </para><para>Se coincidir, obtém as permissões (a) e - devido ao modificador, o processamento da ACL CONTINUA! Assim se existir outra coincidência para aquele grupo, para o seu utilizador, para <code>Known:</code> ou para <code>All:</code> obterá essas permissões, também. </para><para>Se não coincidir, o processamento da ACL continua - com as ACLs da página (se existir alguma) ou com as ACLs por omissão (se não existirem ACLs da página) e finalmente com as ACLs &quot;after&quot;. </para><para>Ao representar a mesma coisa, herdar os valores por omissão tem a vantagem de seguir automaticamente qualquer alteração futura adicionada nos valores por omissão. </para><para><anchor id="Hierarquia"/> </para></section><section><title>Processamento de ACLs de forma hierárquica</title><para><inlinemediaobject><imageobject><imagedata depth="16" fileref="https://flisol.info/moin_static198/sol/img/icon-info.png" width="16"/></imageobject><textobject><phrase>{i}</phrase></textobject></inlinemediaobject> New feature in version 1.6 Se tiver activado o <code>acl_hierachic</code> (ver <link linkend="Configuração">em cima</link>), as páginas são vistas como uma hierarquia e as permissões definidas em páginas num nível mais elevado podem influenciar as permissões do utilizador. </para><para>Como descrevemos em cima, o algoritmo correspondente de cada página mantém-se. As páginas são verificadas de baixo para cima, ou seja, na página <code>A/B/C/D</code>, a página <code>A</code> é verificada em último lugar. Isto significa que para cada página da hierarquia, o <code>before</code> (antes) e <code>after</code> (depois) das ACLs são respeitados. Se uma destas verificações for coincidente (seja permitido ou não), será o resultado final de uma sequência de verificações. Caso contrário, o segundo nível mais alto será verificado. </para><para><anchor id="Grupos"/> </para></section><section><title>Grupos</title><para>Os grupos de utilizadores simplificam a tarefa de especificar permissões para grupos maiores. Normalmente, o nome do grupo tem de terminar com a palavra <code>Group</code> como <ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/FriendsGroup#">FriendsGroup</ulink>. Isto permite ao <ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/WikiMoinMoin#">MoinMoin</ulink> reconhecê-lo como uma lista de nomes de utilizadores. Este padrão por omissão pode ser alterado (ex: para outros idiomas que não o inglês, etc.), consulte o tópico <ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/AjudaNaConfigura%C3%A7%C3%A3o#">AjudaNaConfiguração</ulink>. </para><para>Apenas os amigos (~friends) do <code>SomeUser</code> podem ler e editar esta página: </para><screen><![CDATA[#acl SomeUser:read,write SomeUser/FriendsGroup:read,write]]></screen><para>O <code>SomeUser/FriendsGroup</code> será uma página com cada item da lista de nível de topo que representam um nome de utilizador do wiki nesse grupo: </para><screen><![CDATA[#acl SomeUser:read,write,admin,delete,revert
 * JoeSmith
 * JoeDoe
 * JoeMiller]]></screen><para>Uma página intitulada <code>AdminGroup</code> pode definir um grupo desse nome e pode ser igualmente protegido pelas ACLs: </para><screen><![CDATA[#acl AdminGroup:admin,read,write All:read
 * SomeUser
 * OtherUser
   * Isto é actualmente ignorado.
Qualquer outro texto fora do primeiro nível da lista será ignorado.]]></screen><para><inlinemediaobject><imageobject><imagedata depth="15" fileref="https://flisol.info/moin_static198/sol/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Uma lista de primeiro nível é uma apenas com um espaço antes do asterisco (e tem de existir apenas um espaço depois do asterisco). O exemplo seguinte não funcionará: </para><screen><![CDATA[  * some user
-- com dois espaços não funciona]]></screen><para>Pode configurar quais os nomes das páginas considerados como páginas de definição de grupos (ex: para wikis que não sejam em inglês): </para><screen><![CDATA[page_group_regex =  u'[a-z]Group$'    # isto é o valor por omissão]]></screen><para><inlinemediaobject><imageobject><imagedata depth="15" fileref="https://flisol.info/moin_static198/sol/img/alert.png" width="15"/></imageobject><textobject><phrase>/!\</phrase></textobject></inlinemediaobject> Se as alterações na página de grupo não sortirem efeito, o <ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/WikiMoinMoin#">MoinMoin</ulink> pode reconstruir a cache, removendo todos os ficheiros da directoria <code>caminho_para_o_seu_ wiki_de_exemplo/data/cache/wikidicts/</code> </para></section><section><title>Casos práticos</title><section><title>Wiki como comunidade pública na Internet</title><para>O ponto mais importante aqui é utilizar as ACLs apenas onde é estritamente necessário. Os Wikis dependem na liberdade da informação e edição. Utilizam segurança mínima para limpar conteúdos menos bons. Assim, geralmente as ACLs não são necessárias. Se as utilizar em demasia, pode destruir o modo de funcionamento do wiki. </para><para>Eis o motivo pelo qual as ACLs não devem ser utilizadas (por omissão, ou, caso o sejam, o ficheiro wikiconfig.py deve parecer-se com isto </para><screen><![CDATA[acl_rights_before = u'WikiEditorName:read,write,admin,delete,revert +AdminGroup:admin BadGuy:' ]]></screen><para>A opção por omissão <code>acl_rights_default</code> deve ser satisfatória para si: </para><screen><![CDATA[acl_rights_default = u'Known:read,write,delete,revert All:read,write' ]]></screen><para>Um bom conselho será ter apenas um conjunto pequeno de administradores de confiança no <code>AdminGroup</code> (devem estar a par do funcionamento do wiki ou poderão destruir acidentalmente o modo de funcionamento: pela sua liberdade, não por ser fechado e trancado!). </para><para>Ao utilizar <code>AdminGroup</code>, pode criar uma página intitulada <code>AdminGroup</code> e utilizá-la para definir as pessoas a quem atribui permissões de administração. </para><para>Ao especificar <code>BadGuy</code> como mostramos em cima, bloqueia-lhe o acesso - ele não pode ler nem editar nada com essa conta. Isto só faz sentido temporariamente, caso contrário bastaria eliminar essa conta. É claro que este <code>BadGuy</code> pode trabalhar como anónimo, não oferecendo por isso uma protecção verdadeira (a segurança mínima seria aplicada nestes casos). </para></section><section><title>Wiki como um CMS simples</title><para>Se deseja utilizar um wiki para criar facilmente conteúdo Web, e não quiser edições públicas (apenas de alguns webmasters), pode utilizar o seguinte no seu ficheiro wikiconfig.py: </para><screen><![CDATA[acl_rights_default = u'All:read' 
acl_rights_before  = u'WebMaster,OtherWebMaster:read,write,admin,delete,revert' ]]></screen><para>Assim todos podem ler, mas apenas os Webmasters podem fazer qualquer outra coisa. Se trabalharem numa nova página, coloquem </para><screen><![CDATA[#acl All: ]]></screen><para>nela, para que ninguém possa ver a página inacabada. Ao finalizá-la, não se esqueça de remover essa linha de novo para que <code>acl_rights_default</code> seja utilizada. </para><para>Para que alguma(s) página(s) possam igualmente permitir comentários (como um intitulado <code>PublicComments</code>), atribua mais permissões nessa página: </para><screen><![CDATA[#acl All:read,write ]]></screen></section><section><title>Wiki na Intranet</title><para>Se quiser utilizar um wiki na sua intranet e confia nos seus utilizadores (no que diz respeito a não ter atitudes hostis como bloquear outros utilizadores ou atacar páginas) para utilizar a funcionalidade de administração de um modo sensato, pode utilizar o seguinte: </para><screen><![CDATA[acl_rights_default = u'Known:admin,read,write,delete,revert All:read,write'
acl_rights_before  = u'WikiAdmin,BigBoss:read,write,admin,delete,revert' ]]></screen><para>Assim, todos poderão ler, editar e alterar as permissões das ACL, o <code>WikiAdmin</code> e o <code>BigBoss</code> são forçados a conseguir fazer qualquer coisa, os utilizadores known têm permissões de administração atribuidos pelo acl_rights_default (assim mantêm-na a não ser que haja uma ACL em contrário numa determinada página). </para><para>Consequências: </para><itemizedlist><listitem><para>numa nova página, o criador da página pode definir as ACLs que quiser </para></listitem><listitem><para>nas páginas existentes, não existindo ainda ACLs definidas, qualquer utilizador conhecido pode definir as ACLs que entender </para></listitem><listitem><para>todas as pessoas (à excepção do <code>WikiAdmin</code> e do <code>BigBoss</code>) podem ser bloqueadas por qualquer pessoas (&quot;known&quot;) nas páginas sem ACLs definidas </para></listitem></itemizedlist></section><section><title>Wiki como uma página pública de uma empresa</title><para>Se quiser utilizar um wiki como a página da empresa, e não quiser que qualquer utilizador possa alterar o conteúdo da página da empresa, pode definir as ACLs assim: </para><screen><![CDATA[acl_rights_default = u"TrustedGroup:admin,read,write,delete,revert All:read"
acl_rights_before  = u"AdminGroup:admin,read,write,delete,revert +TrustedGroup:admin"]]></screen><para>Isto significa que: </para><itemizedlist><listitem><para>por omissão, os utilizadores conhecidos e anónimos têm apenas permissões de leitura </para></listitem><listitem><para>numa nova página, os utilizadores do grupo <code>TrustedGroup</code> podem adicionar as ACLs que quiserem </para></listitem><listitem><para>nas páginas existentes, não existindo ainda ACLs definidas, qualquer utilizador do grupo <code>TrustedGroup</code> pode defini-las como quiser </para></listitem><listitem><para>todas as pessoas, à excepção das do grupo <code>AdminGroup</code>, podem ser bloqueadas pelos administradores ou pelos utilizadores de confiança </para></listitem><listitem><para>as pessoas do grupo <code>TrustedGroup</code> podem utilizar as suas permissões de administração em qualquer página em que tenham permissões de edição, mesmo quando existem ACLs específicas </para></listitem></itemizedlist></section><section><title>Comentários em páginas apenas para leitura (read-only)</title><para>Pode adicionar uma secção de comentários numa página apenas para leitura, utilizando uma subpágina editável e permitindo que os utilizadores a editem. Por exemplo, pode definir <code>SomePage</code> da seguinte forma: </para><screen><![CDATA[#acl SomeUser:read,write All:read
'''Algum conteúdo apenas para leitura'''
]]><![CDATA[
...
]]><![CDATA[
''' Comentários do utilizador '''
<<Include(SomePage/Comments)>>]]></screen><para>E <code>SomePage/Comments</code> assim: </para><screen><![CDATA[#acl All:read,write
Adicione os seus comentários sobre SomePage aqui.]]></screen></section></section><section><title>Ver também</title><itemizedlist><listitem><para><ulink url="https://flisol.info/AjudaComListasDeControloDeAcesso/AjudaNaAutoAdministra%C3%A7%C3%A3o#">AjudaNaAutoAdministração</ulink>: A funcionalidade AutoAdmin permite que os utilizadores tenham permissões de administração sobre um subconjunto do wiki </para></listitem></itemizedlist></section></section></article>