Controle de acesso

Alterado na versão 3.0: Antes do Weblate 3.0, o sistema de privilégios era baseado no Django, mas agora é especificamente construído para Weblate. Se você estiver usando uma versão mais antiga, consulte a documentação para essa versão, as informações aqui não se aplicarão.

O Weblate vem com um sistema de privilégios fino para atribuir permissões ao usuário para toda a instância ou em um escopo limitado.

O sistema de autorização baseado nos grupos e funções, onde as funções de definir um conjunto de permissões, grupos e atribuir-lhes para os usuários e traduções, veja Usuários, funções, grupos e permissões para mais detalhes.

Após a instalação, um conjunto padrão de grupos é criado e você pode usá-los para atribuir funções de usuários para toda a instância (ver Grupos e funções padrão). Além disso, quando acl`está ativado, você pode atribuir usuários a projetos de tradução específicos. Configurações mais refinadas pode ser alcançadas usando :ref:`custom-acl

Configurações comuns

Bloqueando o Weblate

Para bloquear completamente o sua instalação de Weblate, você pode usar o LOGIN_REQUIRED_URLS para forçar os usuários a entrar e o REGISTRATION_OPEN para impedir novos registros.

Permissões para todo o site

Para gerenciar permissões para uma instância inteira, basta adicionar utilizadores aos grupos Usuários (isso é feito por padrão, usando o Associações automáticas de grupo), Revisores e Gerenciadores. Manter todos os projetos configurados como “Público” (veja Controle de acesso por projeto).

Permissões por projeto

Defina seus projetos para o Protegido ou Privado, e gerencie usuários por projeto na interface do Weblate.

Adicionando permissões a idiomas, componentes ou projetos

Além disso, você pode conceder permissões a qualquer usuário com base no projeto, componente ou conjunto de idiomas. Para conseguir isso, crie um novo grupo (por exemplo, tradutores de tcheco) e configure-o para um determinado recurso. Quaisquer permissões atribuídas serão concedidas aos membros desse grupo para os recursos selecionados.

Isso funcionará muito bem sem configuração adicional, se usar por permissões de projeto. Para permissões em toda a instância, você provavelmente também vai querer remover essas permissões do grupo Usuários ou alterar a atribuição automática de todos os usuários para esse grupo (ver Associações automáticas de grupo).

Controle de acesso por projeto

Nota

Ao habilitar a ACL, todos os usuários são proibidos de acessar qualquer coisa dentro de um determinado projeto, a menos que você adicione as permissões para que eles façam exatamente isso.

Você pode limitar o acesso do usuário a projetos individuais. Este recurso é ligado por Controle de acesso na configuração de cada projeto. Isso cria automaticamente vários grupos para este projeto, consulte Grupos predefinidos.

Existem as seguintes opções para Controle de acesso:

Público

Publicamente visível e traduzível

Protegido

Publicamente visível, mas somente traduzível por usuários selecionados

Privado

Visível e traduzível apenas por usuários selecionados

Personalizado

Weblate não gerencia usuários, consulte Controle de acesso personalizado.

../_images/project-access.png

Para permitir o acesso a este projeto, você tem que adicionar o privilégio diretamente ao usuário ou grupo de usuários na interface administrativa do Django, ou usando o gerenciamento do usuário na página do projeto, conforme descrito em Gerenciando controle de acesso por projeto.

Nota

Mesmo com a ACL ativada, algumas informações de resumo estarão disponíveis sobre o seu projeto:

  • Estatísticas para todo o caso, incluindo contagens para todos os projetos.

  • Resumo do idioma para toda a instância, incluindo contagens para todos os projetos.

Associações automáticas de grupo

Você pode configurar o Weblate para adicionar automaticamente usuários a grupos com base em seus endereços de e-mail. Essa atribuição automática acontece apenas no momento da criação da conta.

Isso pode ser configurado na interface administrativa do Django para cada grupo (na seção Autenticação).

Nota

A associação automática de grupo para os grupos Usuários e Visualizadores sempre será criada pelo Weblate após as migrações; caso você queira desativá-las, basta definir a expressão regular para ^$, que nunca corresponderá.

Usuários, funções, grupos e permissões

Os modelos de autenticação consistem em vários objetos:

Permissão

Permissões individuais definidos por Weblate. Você não pode atribuir permissões individuais, isso só pode ser feito através da atribuição de funções.

Função

A função define um conjunto de permissões. Isso permite a reutilização desses conjuntos em vários lugares, e facilita a administração.

Usuário

Os usuários podem ser membros de vários grupos.

Grupo

Grupos conectam funções, usuários e objetos de autenticação (projetos, idiomas e listas de componentes).

graph auth { "User" -- "Group"; "Group" -- "Role"; "Role" -- "Permission"; "Group" -- "Project"; "Group" -- "Language"; "Group" -- "Components"; "Group" -- "Component list"; }

Verificação de permissões

Sempre que uma permissão é verificada para decidir se alguém é capaz de realizar uma determinada ação, a verificação é realizada de acordo com o escopo, e as seguintes verificações são realizadas na ordem:

  1. Lista de componentes é comparada com componente ou projeto.

  2. Componentes são comparados com componente ou projeto.

  3. Projetos são comparados com o projeto.

Como se pode ver, conceder acesso a um componente concede automaticamente o acesso do usuário a um projeto que contém um componente.

Nota

Apenas a primeira regra será usada. Então, se você definir todas de Lista de componentes, Componentes e Projeto, apenas Lista de componentes terá efeito.

Uma etapa adicional é executada se estiver verificando a permissão para a tradução:

4. Languages are matched against the scope of translations if set, if not set, this does not match any language.

Dica

Você pode usar Seleção de idioma ou Seleção de projeto para automatizar a inclusão de todos os idiomas ou projetos.

Verificando acesso a um projeto

Um usuário tem que ser um membro de um grupo vinculado ao projeto ou qualquer componente dentro dele. Apenas a adesão é suficiente, não são necessárias permissões específicas para acessar um projeto (isso é usado no grupo padrão Visualizadores, consulte Grupos e funções padrão).

Verificando acesso a um componente

Um usuário pode acessar o componente irrestrito assim que puder acessar o projeto de contenção. Com o Restricted access ativado, o acesso ao componente requer permissão explícita para o componente (ou que contenha lista de componentes).

Gerenciando usuários e grupos

Todos os usuários e grupos podem ser gerenciados usando-se a interface administrativa do Django, disponível na URL /admin/.

Gerenciando controle de acesso por projeto

Nota

Este recurso só funciona para projetos controlados por ACL, veja Controle de acesso por projeto.

Os usuários com o privilégio Pode gerenciar regras ACL para um projeto (veja a Controle de acesso) também podem gerenciar usuários em projetos de controle de acesso ativado através da página do projeto. A interface permite que você:

  • Adicione usuários existentes ao projeto

  • Convide novos usuários para o projeto

  • Altere permissões dos usuários

  • Revogue acesso dos usuários

O gerenciamento do usuário está disponível no menu Gerenciar de um projeto:

../_images/manage-users.png

Grupos predefinidos

Weblate vem com um conjunto predefinido de grupos para um projeto, onde você pode atribuir usuários.

Administration

Tem todas as permissões disponíveis no projeto.

Glossary

Pode gerenciar glossário (adicionar ou remover entradas ou enviar).

Languages

Pode gerenciar idiomas traduzidos - adicionar ou remover traduções.

Screenshots

Pode gerenciar capturas de tela - adicioná-las ou removê-las e associá-las a textos fonte.

Template

Pode editar modelos de tradução em Componentes monolíngues e informações de textos fonte.

Translate

Pode traduzir o projeto, e enviar traduções feitas offline.

VCS

Pode gerenciar VCS e acessar o repositório exportado.

Review

Pode aprovar traduções durante a revisão.

Billing

Pode acessar informações de cobrança (consulte Cobrança).

Controle de acesso personalizado

Ao escolher Personalizado como Controle de acesso, o Weblate deixará de gerenciar o acesso para um determinado projeto e todos os usuários e grupos podem ser gerenciados usando a interface administrativa do Django. Isso pode ser usado para definir um controle de acesso mais complexo ou configurar uma política de acesso compartilhado para todos os projetos em uma única instância Weblate. Se você quiser ativar isso para todos os projetos por padrão, configure DEFAULT_ACCESS_CONTROL.

Aviso

Ao ativar isso, o Weblate removerá todos os Controle de acesso por projeto que ele criou para este projeto. Se você estiver fazendo isso sem permissão administrativa da instância, você perderá instantaneamente o seu acesso para gerenciar o projeto.

Grupos e funções padrão

Lista de privilégios

Cobrança (consulte Cobrança)

Visualizar informações de cobrança [Administração, Cobrança]

Alterações

Baixar alterações [Administração]

Comentários

Publicar comentário [Administração, Editar fonte, Usuário avançado, Revisar textos, Traduzir]

Excluir comentário [Administração]

Componente

Editar configurações do componente [Administração]

Bloquear componente, evitando de ele ser traduzido [Administração]

Glossário

Adicionar entrada do glossário [Administração, Gerenciar glossário, Usuário avançado]

Editar entrada do glossário [Administração, Gerenciar glossário, Usuário avançado]

Excluir entrada do glossário [Administração, Gerenciar glossário, Usuário avançado]

Enviar entradas do glossário [Administração, Gerenciar glossário, Usuário avançado]

Maquinaria

Usar maquinaria [Administração, Usuário avançado]

Projetos

Editar configurações do projeto [Administração]

Gerenciar acesso ao projeto [Administração]

Relatórios

Baixar relatórios [Administração]

Capturas de tela

Adicionar captura de tela [Administração, Gerenciar capturas de tela]

Editar captura de tela [Administração, Gerenciar capturas de tela]

Excluir captura de tela [Administração, Gerenciar capturas de tela]

Textos fonte

Editar informações de textos fonte [Administração, Editar fonte]

Textos

Adicionar novo texto [Administração]

Ignorar verificações com falha [Administração, Editar fonte, Usuário avançado, Revisar textos, Traduzir]

Editar textos [Administração, Editar fonte, Usuário avançado, Revisar textos, Traduzir]

Revisar textos [Administração, Revisar textos]

Editar texto quando as sugestões são forçadas [Administração, Revisar textos]

Editar textos fonte [Administração, Editar fonte, Usuário avançado]

Sugestões

Aceitar sugestões [Administração, Editar fonte, Usuário avançado, Revisar textos, Traduzir]

Adicionar sugestões [Administração, Editar fonte, Usuário avançado, Revisar textos, Traduzir]

Excluir sugestões [Administração]

Votar em sugestões [Administração, Editar fonte, Usuário avançado, Revisar textos, Traduzir]

Traduções

Iniciar nova tradução [Administração, Gerenciar idiomas, Usuário avançado]

Efetuar tradução automática [Administração, Gerenciar idiomas]

Excluir traduções existentes [Administração, Gerenciar idiomas]

Iniciar tradução em um novo idioma [Administração, Gerenciar idiomas]

Envios

Definir autor da tradução enviada [Administração]

Sobrescrever textos existentes com um envio [Administração, Editar fonte, Usuário avançado, Revisar textos, Traduzir]

Enviar textos de tradução [Administração, Editar fonte, Usuário avançado, Revisar textos, Traduzir]

VCS

Acessar o repositório interno [Acessar repositório, Administração, Gerenciar repositório, Usuário avançado]

Fazer commit das alterações para o repositório interno [Administração, Gerenciar repositório]

Fazer push das alterações do repositório interno [Administração, Gerenciar repositório]

Redefinir as alterações no repositório interno [Administração, Gerenciar repositório]

Ver o local do repositório upstream [Acessar repositório, Administração, Gerenciar repositório, Usuário avançado]

Atualizar o repositório interno [Administração, Gerenciar repositório]

Privilégios para todo o site

Usar interface de gerenciamento

Adicionar definições de idioma

Gerenciar definições de idiomas

Adicionar grupos

Gerenciar grupos

Adicionar usuários

Gerenciar usuários

Gerenciar anúncios

Gerenciar memória de tradução

Nota

Os privilégios para todo o site não são concedidos a nenhuma função padrão. Eles são poderosos e muito próximos do status de superusuário — a maioria deles afetam todos os projetos de sua instalação do Weblate.

Lista de grupos

Os seguintes grupos são criados após a instalação (ou após a execução de setupgroups):

Convidados

Define permissões para usuários não autenticados.

Este grupo contém apenas usuários anônimos (consulte ANONYMOUS_USER_NAME).

Você pode remover funções deste grupo para limitar as permissões para usuários não autenticados.

Funções padrão: Adicionar sugestão, Acessar repositório

Visualizadores

Essa função garante a visibilidade de projetos públicos para todos os usuários. Por padrão, todos os usuários são membros deste grupo.

Por padrão, todos os usuários são membros deste grupo, usando Associações automáticas de grupo.

Funções padrão: nenhuma

Usuários

Grupo padrão para todos os usuários.

Por padrão, todos os usuários são membros deste grupo usando Associações automáticas de grupo.

Funções padrão: Usuário avançado

Revisores

Grupo para revisores (consulte Fluxos de trabalho de tradução).

Funções padrão: Revisar textos

Gerenciadores

Grupo pra administradores.

Funções padrão: Administração

Aviso

Nunca remova os grupos e usuários predefinidos do Weblate, pois isso pode levar a problemas inesperados. Se você não quiser usar esses recursos, basta remover todos os privilégios deles.