Controle de acesso

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.

Alterado na versão 3.0: Antes do Weblate 3.0, o sistema de privilégios era baseado apenas no sistema de privilégios do Django, mas é agora especificamente construído para Weblate. Se for usado algo mais antigo, consulte a documentação para a versão específica que você está usando.

Controle de acesso personalizado

Se você não está administrando toda a instalação do Weblate e apenas tem acesso para gerenciar certos projetos (como no Hosted Weblate), suas opções de gerenciamento de controle de acesso são limitadas às seguintes configurações. Se você não precisa de nenhuma configuração complexa, elas são suficientes para você.

Controle de acesso do projeto

Nota

Este recurso está indisponível para os projetos que executam o plano Libre no Hosted Weblate.

Você pode limitar o acesso do usuário a projetos individuais selecionando uma configuração diferente de Controle de acesso. As opções disponíveis são:

Público

Visível publicamente, traduzível para todos os usuários autenticados.

Protegido

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

Privado

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

Personalizado

Os recursos de Gerenciamento de usuários serão desabilitados; por padrão, todos os usuários estão proibidos de realizar qualquer ação no projeto. Você terá que configurar todas as permissões usando Controle de acesso personalizado.

O Controle de acesso pode ser alterado na aba Acesso da configuração (GerenciarConfigurações) de cada projeto.

../_images/project-access.png

O valor padrão pode ser alterado por DEFAULT_ACCESS_CONTROL.

Nota

Mesmo para projetos Privados, algumas informações sobre o seu projeto serão expostas: estatísticas e resumo de linguagem para toda a instância incluirão contagens para todos os projetos, apesar da configuração de controle de acesso. O nome do seu projeto e outras informações não podem ser revelados por meio disso.

Nota

O conjunto real de permissões disponíveis para usuários por padrão em projetos Públicos, Protegidos e Privados pode ser redefinido pelo administrador da instância de Weblate usando configurações personalizadas.

Aviso

Ao ativar o controle de acesso Personalizado, o Weblate removerá todos os grupos especiais que ele criou para um projeto selecionado. Se você estiver fazendo isso sem permissão administrativa para toda a instância de Weblate, você perderá instantaneamente o seu acesso para gerenciar o projeto.

Ver também

Controle de acesso

Gerenciando controle de acesso por projeto

Os usuários com o privilégio Gerenciar acesso ao projeto (veja a Lista de privilégios) podem gerenciar usuários em projetos com controle de acesso não Personalizado. Eles podem atribuir os usuários a um dos seguintes grupos.

Para projetos Públicos, Protegidos e Privados:

Administração

Inclui todas as permissões disponíveis para o projeto.

Revisar (somente se fluxo de trabalho de revisão estiver ativado)

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

Para projetos Protegidos e Privados apenas:

Traduzir

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

Fontes

Pode editar textos fonte (se permitido nas configurações do projeto) e informações de textos fonte.

Idiomas

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

Glossário

Pode gerenciar glossário (adicionar ou remover entradas, e também enviar).

Memória

Pode gerenciar memória de tradução.

Capturas de tela

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

VCS

Pode gerenciar VCS e acessar o repositório exportado.

Cobrança

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

Infelizmente, não é possível alterar este conjunto predefinido de grupos por enquanto. Além disso, dessa forma não é possível dar apenas algumas permissões adicionais a todos os usuários.

Nota

Para controle de acesso não-Customizado, uma instância de cada grupo descrito acima é na verdade definida para cada projeto. O nome real destes grupos será Projeto@Grupo, também exibido na interface de administração do Django desta forma. Embora eles não possam ser editados a partir da interface de usuário do Weblate.

../_images/manage-users.png

Esses recursos estão disponíveis na página Controle de acesso, que pode ser acessada no projeto a partir do menu GerenciarUsuários.

Novo convite de usuário

Além de adicionar um usuário existente ao projeto, também é possível convidar novos. Qualquer novo usuário será criado imediatamente, mas a conta permanecerá inativa até que você entre com um link no convite enviado por e-mail. Não é necessário ter nenhum privilégio de todo o site para fazer isso, a permissão de gerenciamento de acesso no escopo do projeto (por exemplo, uma associação no grupo Administração) seria suficiente.

Dica

Se o usuário convidado perdeu a validade do convite, ele pode definir sua senha usando o endereço de e-mail convidado no formulário de redefinição de senha, pois a conta já foi criada.

Novo na versão 3.11: É possível reenviar o e-mail para convites de usuário (invalidando qualquer convite enviado anteriormente).

O mesmo tipo de convite está disponível em todo o site a partir da interface de gerenciamento na aba Usuários.

Gerenciamento de permissões por projeto

Você pode definir seus projetos para Protegido ou Privado e gerenciar usuários por projeto na interface de usuário do Weblate.

Por padrão, isso impede que o Weblate conceda acesso fornecido por grupos padrão Usuários e Visualizadores devido à própria configuração desses grupos. Isso não impede que você conceda permissões a esses projetos em todo o site, alterando grupos padrão, criando um novo ou criando configurações personalizadas adicionais para componentes individuais, conforme descrito em Controle de acesso personalizado abaixo.

Um dos principais benefícios de gerenciar permissões por meio da interface de usuário do Weblate é que você pode delegá-las a outros usuários sem dar a eles o privilégio de superusuário. Para isso, adicione-os ao grupo Administração do projeto.

Controle de acesso personalizado

Nota

Este recurso está indisponível para os projetos que executam o plano Libre no Hosted Weblate.

O sistema de permissão é baseado em grupos e funções, onde as funções de definir um conjunto de permissões, e grupos vinculam-nas para os usuários e traduções. Veja Usuários, papéis, grupos e permissões para mais detalhes.

Os recursos mais poderosos do sistema de controle de acesso do Weblate por enquanto estão disponíveis apenas através da interface administrativa do Django. Você pode usá-la para gerenciar as permissões de qualquer projeto. Você não precisa necessariamente definir o controle de acesso para Personalizado para utilizá-lo. No entanto, você deve ter privilégios de superusuário para usá-lo.

Se você não está interessado em detalhes de implementação, e apenas deseja criar uma configuração simples o suficiente com base nos padrões, ou não tem um acesso de todo o site para toda a instalação do Weblate (como em Hosted Weblate), consulte a seção Controle de acesso personalizado.

Configurações comuns

Esta seção contém uma visão geral de algumas configurações comuns nas quais você pode estar interessado.

Gerenciamento de permissões para todo o site

Para gerenciar permissões para uma instância inteira de uma vez, adicione usuários aos grupos padrão:

Você deve manter todos os projetos configurados como Públicos (veja Controle de acesso do projeto), caso contrário as permissões de todo o site fornecidas pela participação nos grupos Usuários e Revisores não terão nenhum efeito.

Você também pode conceder algumas permissões adicionais de sua escolha aos grupos padrão. Por exemplo, você pode querer dar permissão para gerenciar capturas de tela para todos os Usuários.

Você também pode definir alguns novos grupos personalizados. Se você deseja continuar gerenciando suas permissões em todo o site para esses grupos, escolha um valor apropriado para Seleção de projeto (por exemplo Todos os projetos ou Todos os projetos públicos).

Permissões personalizadas a idiomas, componentes ou projetos

Você pode criar seus próprios grupos dedicados para gerenciar permissões para objetos distintos, como linguagens, componentes e projetos. Embora esses grupos só possam conceder privilégios adicionais, você não pode revogar qualquer permissão concedida por grupos de todo o site ou por projeto adicionando outro grupo personalizado.

Exemplo:

Se você quiser (por qualquer motivo) permitir a tradução para um idioma específico (digamos, tcheco) apenas para um conjunto fechado de tradutores confiáveis, mantendo as traduções para outros idiomas públicos, você terá que:

  1. Remover a permissão para traduzir Tcheco de todos os usuários. Na configuração padrão, isso pode ser feito alterando o grupo padrão Usuários.

    Grupo Usuários

    Seleção de idioma

    Como definido

    Idiomas

    Todos, exceto Tcheco

  1. Adicionar um grupo dedicado para tradutores(as) de Tcheco.

    Grupo Tradutores(as) de tcheco

    Funções

    Usuários(as) avançados(as)

    Seleção de projeto

    Todos os projetos públicos

    Seleção de idioma

    Como definido

    Idiomas

    Tcheco

  1. Adicionar usuários aos quais deseja conceder permissões a este grupo.

Como você pode ver, o gerenciamento de permissões dessa maneira é poderoso, mas pode ser um trabalho tedioso. Você não pode delegá-lo a outro usuário, a menos que conceda permissões de superusuário.

Usuários, papéis, grupos e permissões

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

Permissão

Permissão individual definida pelo Weblate. Permissões não podem ser atribuídas a usuários. Isso só pode ser feito através da atribuição de papéis.

Papel

Um papel define um conjunto de permissões. Isso permite a reutilização desses conjuntos em vários lugares, facilitando a administração.

Usuário

Usuário pode pertencer a vários grupos.

Grupo

Grupo conecta papéis, 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"; }

Nota

Um grupo não pode ter papéis atribuídos a ele; nesse caso, o acesso para navegar no projeto por qualquer pessoa é presumido (veja abaixo).

Acesso para navegar até um projeto

Um usuário tem que ser um membro de um grupo vinculado ao projeto ou qualquer componente dentro daquele projeto. Ser membro é suficiente, não são necessárias permissões específicas para navegar o projeto (isso é usado no grupo padrão Visualizadores, consulte Lista de grupos).

Acesso para navegar até um componente

Um usuário pode acessar componentes irrestritos assim que for possível acessar o projeto dos componentes (e terá todas as permissões que foram concedidas ao usuário para o projeto). Com o Acesso restrito ativado, o acesso ao componente requer permissões explícitas para o componente (ou uma lista de componentes na qual o componente está contido).

Escopo de grupos

O escopo da permissão atribuída pelas funções nos grupos é aplicado pelas seguintes regras:

  • Se o grupo especificar qualquer Lista de componentes, todas as permissões dadas aos membros desse grupo serão concedidas para todos os componentes nas listas de componentes anexadas ao grupo, e um acesso sem permissões adicionais é concedido para todos os projetos estes componentes estão contidos. Componentes e Projetos são ignorados.

  • Se o grupo especificar quaisquer Componentes, todas as permissões dadas aos membros desse grupo são concedidas para todos os componentes anexados ao grupo, e um acesso sem permissões adicionais é concedido para todos os projetos nos quais que esses componentes estão. Projetos são ignorados.

  • Otherwise, if the group specifies any Projects, either by directly listing them or by having Projects selection set to a value like All public projects, all those permissions are applied to all the projects, which effectively grants the same permissions to access all projects unrestricted components.

  • The restrictions imposed by a group’s Languages are applied separately, when it’s verified if a user has an access to perform certain actions. Namely, it’s applied only to actions directly related to the translation process itself like reviewing, saving translations, adding suggestions, etc.

Dica

Use Seleção de idioma ou Seleção de projeto para automatizar a inclusão de todos os idiomas ou projetos.

Exemplo:

Let’s say there is a project foo with the components: foo/bar and foo/baz and the following group:

Group Spanish Admin-Reviewers

Funções

Revisar textos, Gerenciar repositório

Componentes

foo/bar

Idiomas

Espanhol

Members of that group will have following permissions (assuming the default role settings):

  • General (browsing) access to the whole project foo including both components in it: foo/bar and foo/baz.

  • Review strings in foo/bar Spanish translation (not elsewhere).

  • Manage VCS for the whole foo/bar repository e.g. commit pending changes made by translators for all languages.

Associações automáticas de grupo

Na parte inferior da página de edição Grupo na interface administrativa do Django, você pode especificar Associações automáticas de grupo, que é uma lista de expressões regulares usadas para atribuir automaticamente usuários recém-criados a um grupo com base em seus endereços de e-mail. Esta associação só acontece após a criação da conta.

The most common use-case for the feature is to assign all new users to some default group. In order to do so, you will probably want to keep the default value (^.*$) in the regular expression field. Another use-case for this option might be to give some additional privileges to employees of your company by default. Assuming all of them use corporate e-mail addresses on your domain, this can be accomplished with an expression like ^.*@mycompany.com.

Nota

Associação automática de grupo para Usuários e Visualizadores sempre será recriada ao atualizar de uma versão anterior do Weblate para outra. Se você deseja desativá-los, defina a expressão regular para ^$ (que nunca corresponderá).

Nota

As for now, there is no way to bulk-add already existing users to some group via the user interface. For that, you may resort to using the REST API.

Grupos e funções padrão

After installation, a default set of groups is created (see Lista de grupos).

Esses funções e grupos são criados após a instalação. As funções embutidas são sempre mantidas atualizadas pela migração do banco de dados ao atualizar. Você não pode alterá-las. Defina uma nova função caso você queira definir seu próprio conjunto de permissões.

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 traduções [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]

Sugestões automáticas

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

Memória de tradução

Editar memória de tradução [Administração, Gerenciar memória de tradução]

Excluir memória de tradução [Administração, Gerenciar memória de tradução]

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 adicionais de texto [Administração, Editar fonte]

Textos

Adicionar novo texto [Administração]

Remover um texto [Administração]

Ignorar verificação 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ão [Administração, Editar fonte, Usuário avançado, Revisar textos, Traduzir]

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

Excluir sugestão [Administração, Usuário avançado]

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

Traduções

Adicionar idioma para tradução [Administração, Usuário avançado, Gerenciar idiomas]

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

Excluir tradução existente [Administração, Gerenciar idiomas]

Adicionar idiomas para tradução [Administração, Gerenciar idiomas]

Envios

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

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

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

VCS

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

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 [Administração, Acessar repositório, Usuário avançado, Gerenciar repositório]

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

Privilégios para todo o site

Usar interface de gerenciamento

adicionar novos projetos

Adicionar definições de idioma

Gerenciar definições de idiomas

Gerenciar grupos

Gerenciar usuários

Gerenciar funções

Gerenciar anúncios

Gerenciar memória de tradução

Gerenciar listas de componentes

Nota

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) e você está livre para modificá-los. A migração irá, no entanto, recriá-los se você excluí-los ou renomeá-los.

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, associação automática de grupo faz com que todos os novos membros de contas deste grupo quando eles entram.

Funções padrão: nenhuma

Usuários

Grupo padrão para todos os usuários.

Por padrão, associação automática de grupo faz com que todos os novos membros de contas deste grupo quando eles entram.

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 tiver uso para eles, você pode remover todos os privilégios deles.

Restrições adicionais de acesso

If you want to use your Weblate installation in a less public manner, i.e. allow new users on an invitational basis only, it can be done by configuring Weblate in such a way that only known users have an access to it. In order to do so, you can set REGISTRATION_OPEN to False to prevent registrations of any new users, and set REQUIRE_LOGIN to /.* to require logging-in to access all the site pages. This is basically the way to lock your Weblate installation.

Dica

You can use built-in invitations to add new users.