Control de acceso

Weblate incluye un sistema de privilegios detallado que permite asignar permisos de usuario en toda la instalación o en un ámbito limitado.

Distinto en la versión 3.0: Hasta Weblate 3.0, el sistema de privilegios se basaba únicamente en el de Django, pero ahora se ha construido específicamente para Weblate. Si utiliza una versión antigua, consulte la documentación que corresponda a esa versión.

Control de acceso simple

Si no está administrando toda la instalación de Weblate y solo tiene acceso para administrar ciertos proyectos (como en Hosted Weblate <https://hosted.weblate.org/> _), sus opciones de administración de control de acceso se limitan a las siguientes configuraciones. Si no necesita ninguna configuración compleja, será suficiente para ti.

Control de acceso al proyecto

Nota

This feature is unavailable for projects running the Libre plan on Hosted Weblate.

Puede limitar el acceso del usuario a proyectos individuales seleccionando una configuración diferente: guilabel: Control de acceso. Las opciones disponibles son:

Público

Visible públicamente, traducible por todos los usuarios que hayan accedido a sus cuentas.

Protegido

Visible públicamente y traducible solo por usuarios seleccionados.

Privado

Solo visible para, y traducible por, usuarios seleccionados.

Personalizado

User management features will be disabled; by default all users are forbidden to performed any actions on the project. You will have to set up all the permissions using Control de acceso personalizado.

Access control can be changed in the Access tab of the configuration (ManageSettings) of each respective project.

../_images/project-access.png

El valor predeterminado se puede cambiar mediante :setting: DEFAULT_ACCESS_CONTROL.

Nota

Incluso para los proyectos Privados, alguna información sobre su proyecto será expuesta: las estadísticas y el resumen de idiomas para toda la instancia incluirán los recuentos de todos los proyectos a pesar de la configuración del control de acceso. El nombre de su proyecto y otra información no pueden ser revelados a través de esto.

Nota

El administrador de la instancia de Weblate puede redefinir el conjunto de permisos disponibles por defecto para los usuarios en los proyectos Public, Protected, y Private utilizando custom settings.

Advertencia

Al activar el control de acceso Personalizado, Weblate eliminará todos los grupos especiales que haya creado para un proyecto seleccionado. Si hace esto sin permiso de administrador para toda la instancia de Weblate, perderá instantáneamente su acceso para gestionar el proyecto.

Ver también

Control de acceso

Gestionar el control de acceso por proyecto

Los usuarios con el privilegio Gestionar el acceso al proyecto (ver privilegios) pueden gestionar usuarios en proyectos con control de acceso no Personalizado. Pueden asignar usuarios a uno de los siguientes grupos.

Para proyectos Públicos, Protegidos y Privados:

Administración

Cuenta con todos los permisos disponibles en el proyecto.

Revisión (sólo si review workflow está activado)

Puede aprobar traducciones durante la revisión.

Para proyectos protegidos y privados únicamente:

Traducir

Puede traducir el proyecto y cargar traducciones realizadas sin conexión.

Orígenes

Puede editar las cadenas de origen (si se permite en la configuración del proyecto) y la información de la cadena de origen.

Idiomas

Puede gestionar los idiomas traducibles (añadir o quitar traducciones).

Glosario

Puede gestionar el glosario (añadir o quitar entradas, o bien cargarlas).

Memoria

Puede gestionar la memoria de traducción.

Capturas de pantalla

Puede gestionar las capturas de pantalla (añadirlas o eliminarlas, así como asociarlas a cadenas de origen).

Sistema de control de versiones

Puede gestionar el sistema de control de versiones y acceder al repositorio exportado.

Facturación

Puede acceder a la información y la configuración de facturación (vea Facturación).

Desafortunadamente, no es posible cambiar este conjunto predefinido de grupos por ahora. Además, de esta manera no es posible otorgar solo algunos permisos adicionales a todos los usuarios.

Nota

Para el control de acceso no Personalizado se define realmente una instancia de cada grupo descrito anteriormente para cada proyecto. El nombre real de esos grupos será Proyecto@Grupo, que también se muestra en la interfaz de administración de Django de esta manera. Aunque no se pueden editar desde la interfaz de usuario de Weblate.

../_images/manage-users.png

Estas funciones están disponibles en la página Control de acceso, a la que se puede acceder desde el menú del proyecto GestiónUsuarios.

Invitación a usuarios nuevos

Además de añadir un usuario existente al proyecto, también es posible invitar a otros nuevos. Cualquier nuevo usuario se creará inmediatamente, pero la cuenta permanecerá inactiva hasta que se registre con un enlace en la invitación enviada por correo electrónico. No es necesario tener ningún privilegio en el sitio para hacerlo, bastaría con un permiso de gestión de acceso en el ámbito del proyecto (por ejemplo, una pertenencia al grupo Administration).

Consejo

Si el usuario invitado pierde la validación de la invitación, pueden establecer su contraseña utilizando la dirección de correo electrónico invitado en el formulario de restablecimiento de contraseña, ya que la cuenta ya está creada.

Nuevo en la versión 3.11: Es posible reenviar el correo electrónico para las invitaciones de los usuarios (invalidando cualquier invitación enviada anteriormente).

El mismo tipo de invitaciones están disponibles en todo el sitio desde la management interface en la pestaña :Users.

Bloquear usuarios

Nuevo en la versión 4.7.

En caso de que algunos usuarios se comporten mal en tu proyecto, tienes la opción de bloquearlos para que no contribuyan. El usuario bloqueado podrá seguir viendo el proyecto si tiene permisos para ello, pero no podrá contribuir.

Gestión de permisos por proyecto

Puede definir sus proyectos como Protegido o Privado y gestionar los usuarios por proyecto en la interfaz de usuario de Weblate.

Por defecto, esto evita que Weblate conceda el acceso proporcionado por Users y Viewers default groups debido a la propia configuración de estos grupos. Esto no impide que se concedan permisos a esos proyectos en todo el sitio modificando los grupos por defecto, creando uno nuevo o creando configuraciones personalizadas adicionales para componentes individuales como se describe en Control de acceso personalizado más abajo.

Una de las principales ventajas de gestionar los permisos a través de la interfaz de usuario de Weblate es que puedes delegarlos en otros usuarios sin darles el privilegio de superusuario. Para ello, añádelos al grupo Administration del proyecto.

Control de acceso personalizado

Nota

This feature is unavailable for projects running the Libre plan on Hosted Weblate.

El sistema de permisos está basado en grupos y roles, donde los roles definen un conjunto de permisos, y los grupos los vinculan a los usuarios y a las traducciones, véase Usuarios, roles, grupos y permisos para más detalles.

Las características más potentes del sistema de control de acceso de Weblate por ahora sólo están disponibles a través de la interfaz de administración de Django admin interface. Puedes utilizarlo para gestionar los permisos de cualquier proyecto. No tienes que cambiarlo necesariamente a Custom access control para usarlo. Sin embargo, debes tener privilegios de superusuario para poder utilizarlo.

Si no estás interesado en los detalles de la implementación, y sólo quieres crear una configuración muy simple basada en los valores predeterminados, o no tienes un acceso a todo el sitio de la instalación de Weblate (como en Hosted Weblate), por favor visita la sección Control de acceso simple.

Configuraciones comunes

Esta sección contiene un resumen de algunas configuraciones comunes que pueden interesarte.

Gestión de permisos para todo el sitio

Para gestionar los permisos de toda una instancia a la vez, añade usuarios a los grupos apropiados default groups:

  • Users (esto se hace por defecto mediante la automatic group assignment).

  • Reviewers (si estás utilizando review workflow con revisores dedicados).

  • Managers (si quieres delegar la mayor parte de las operaciones de gestión a otra persona).

Deberías mantener todos los proyectos configurados como Public (ver Control de acceso al proyecto), de lo contrario los permisos de todo el sitio proporcionados por la pertenencia a los grupos Users y Reviewers no tendrán ningún efecto.

También puedes conceder algunos permisos adicionales de tu elección a los grupos por defecto. Por ejemplo, puedes querer dar un permiso para gestionar las capturas de pantalla a todos los Users.

También puedes definir nuevos grupos personalizados. Si quieres seguir gestionando tus permisos en todo el sitio para estos grupos, elige un valor apropiado para Project selection (e.g. All projects o All public projects).

Permisos personalizados para idiomas, componentes o proyectos

Puedes crear tus propios grupos dedicados para gestionar los permisos de distintos objetos como idiomas, componentes y proyectos. Aunque estos grupos sólo pueden conceder privilegios adicionales, no puedes revocar ningún permiso concedido por los grupos de todo el sitio o por proyecto añadiendo otro grupo personalizado.

Ejemplo:

Si quieres (por la razón que sea) permitir la traducción a un idioma específico (digamos checo) sólo a un conjunto cerrado de traductores fiables mientras mantienes las traducciones a otros idiomas públicos, tendrás que hacerlo:

  1. Elimina el permiso para traducir Czech de todos los usuarios. En la configuración por defecto esto se puede hacer alterando el grupo Users default group.

    Grupo Usuarios

    Selección de idioma

    Como se ha definido

    Idiomas

    Todos menos checo

  1. Añadir un grupo dedicado para los traductores de checo.

    Grupo Traductores al checo

    Roles

    Usuario avanzado

    Selección del proyecto

    Todos los proyectos públicos

    Selección de idioma

    Como se ha definido

    Idiomas

    Checo

  1. Añade a este grupo los usuarios a los que quieras dar permisos.

Como puedes ver, la gestión de permisos de esta manera es poderosa, pero puede ser un trabajo bastante tedioso. No se puede delegar a otro usuario, a no ser que se concedan permisos de superusuario.

Usuarios, roles, grupos y permisos

Los modelos de autenticación consisten de varios objetos:

Permiso

Permiso individual definido por Weblate. Los permisos no se pueden asignar a los usuarios. Esto sólo puede hacerse mediante la asignación de roles.

Rol

Un rol define un conjunto de permisos. Esto permite reutilizar este conjunto en varios lugares, facilitando la administración.

Usuario

Un usuario puede ser miembro de varios grupos.

Grupo

El grupo conecta roles, usuarios y objetos de autenticación (proyectos, idiomas y listas de componentes).

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

Nota

Un grupo puede no tener roles asignados, en ese caso se asume el acceso a navegar por el proyecto por parte de cualquiera (ver más abajo).

Acceso a navegar por un proyecto

Un usuario tiene que ser miembro de un grupo vinculado al proyecto, o a cualquier componente dentro de ese proyecto. Tener la membresía es suficiente, no se necesitan permisos específicos para navegar por el proyecto (esto se utiliza en el grupo por defecto Viewers, ver Lista de grupos).

Acceso para navegar a un componente

Un usuario puede acceder a los componentes sin restricciones una vez que pueda acceder al proyecto de los componentes (y tendrá todos los permisos que el usuario tenga concedidos para el proyecto). Con Acceso restringido activado, el acceso al componente requiere permisos explícitos para el componente (o una lista de componentes en la que esté el componente).

Ámbito de los grupos

El alcance del permiso asignado por los roles en los grupos se aplica mediante las siguientes reglas:

  • Si el grupo especifica cualquier Component list, todos los permisos otorgados a los miembros de ese grupo se conceden para todos los componentes de las listas de componentes adjuntas al grupo, y se concede un acceso sin permisos adicionales para todos los proyectos en los que estén estos componentes. Components y Projects se ignoran.

  • Si el grupo especifica cualquier Components, todos los permisos otorgados a los miembros de ese grupo se conceden para todos los componentes adscritos al grupo, y se concede un acceso sin permisos adicionales para todos los proyectos en los que están estos componentes. Projects se ignora.

  • De lo contrario, si el grupo especifica cualquier Proyects, ya sea enumerándolos directamente o teniendo Projects selection fijado en un valor como All public projects, todos esos permisos se aplican a todos los proyectos, lo que efectivamente otorga los mismos permisos para acceder a todos los proyectos unrestricted components.

  • Las restricciones impuestas por la Languages de un grupo se aplican por separado, cuando se verifica si un usuario tiene acceso a realizar determinadas acciones. En concreto, se aplica sólo a las acciones directamente relacionadas con el proceso de traducción en sí, como revisar, guardar traducciones, añadir sugerencias, etc.

Consejo

Para automatizar la inclusión de todos los idiomas o proyectos, usa Language selection o Project selection.

Ejemplo:

Digamos que hay un proyecto foo con los componentes: foo/bar yd foo/baz y el grupo siguiente:

Grupo Administradores-Revisores Españoles

Roles

Revisar cadenas, Gestionar repositorio

Componentes

foo/bar

Idiomas

Español

Los miembros de ese grupo tendrán los siguientes permisos (asumiendo la configuración de roles por defecto):

  • Acceso general (navegación) a todo el proyecto foo incluyendo los dos componentes que lo componen: foo/bar y foo/baz.

  • Revisar las cadenas en la traducción al español de foo/bar (no en otra parte).

  • Gestionar VCS para todo el repositorio foo/bar, por ejemplo, commit los cambios pendientes realizados por los traductores para todos los idiomas.

Asignaciones de grupo automático

En la parte inferior de la página de edición de Group en la interfaz de administración de Django, puedes especificar Automatic group assignments, que es una lista de expresiones regulares utilizadas para asignar automáticamente a los usuarios recién creados a un grupo en función de sus direcciones de correo electrónico. Esta asignación sólo se realiza al crear la cuenta.

El caso de uso más común para esta función es asignar todos los nuevos usuarios a algún grupo por defecto. Para ello, probablemente querrás mantener el valor por defecto (^.*$) en el campo de expresión regular. Otro caso de uso para esta opción podría ser dar algunos privilegios adicionales a los empleados de tu empresa por defecto. Suponiendo que todos ellos utilicen direcciones de correo electrónico corporativas en su dominio, esto puede lograrse con una expresión como ^.*@miempresa.com.

Nota

La asignación automática de grupos a Usuarios y Visores siempre se recrea al actualizar de una versión de Weblate a otra. Si deseas desactivarla, fija la expresión regular a ^$ (que no coincidirá con nada).

Nota

Por el momento, no hay forma de añadir en masa usuarios ya existentes a algún grupo a través de la interfaz de usuario. Para ello, puedes recurrir a la API REST.

Grupos y funciones por defecto

Tras la instalación, se crea un conjunto de grupos por defecto (ver Lista de grupos).

Estos roles y grupos se crean en el momento de la instalación. Los roles incorporados se mantienen siempre actualizados por la migración de la base de datos cuando se actualiza. En realidad no puedes cambiarlos, por favor define un nuevo rol si quieres definir tu propio conjunto de permisos.

Lista de privilegios

Facturación (vea Facturación)

Ver información de facturación [Administración, Facturación]

Cambios

Descargar cambios [Administración]

Comentarios

Comentario [Administration, Edit source, Power user, Review strings, Translate]

Eliminar comentario [Administración]

Componente

Editar configuración de componentes [Administración]

Bloquear componente, impidiendo traducciones [Administration]

Glosario

Añadir entrada de glosario [Administración, Gestionar glosario, Usuario avanzado]

Editar entrada de glosario [Administración, Gestionar glosario, Usuario avanzado]

Eliminar entrada de glosario [Administración, Gestionar glosario, Usuario avanzado]

Cargar entradas de glosario [Administración, Gestionar glosario, Usuario avanzado]

Sugerencias automáticas

Utilizar automatización [Administration, Edit source, Power user, Review strings, Translate]

Memoria de traducción

Editar la memoria de traducción [Administración, Gestión de la memoria de traducción]

Borrar la memoria de traducción [Administración, Gestión de la memoria de traducción]

Proyectos

Editar configuración del proyecto [Administración]

Gestionar acceso al proyecto [Administración]

Informes

Descargar informes [Administración]

Capturas de pantalla

Añadir captura de pantalla [Administración, Gestión de capturas de pantalla]

Editar captura de pantalla [Administración, Gestión de capturas de pantalla]

Borrar captura de pantalla [Administración, Gestión de capturas de pantalla]

Cadenas de origen

Editar información adicional de la cadena [Administration, Edit source]

Cadenas

Añadir cadena nueva [Administración]

Quitar una cadena [Administración]

Descartar comprobación fallida [Administración, Editar fuente, Usuario avanzado, Cadenas de revisión, Tranducir]

Editar cadenas [Administración, Editar fuente, Usuario avanzado, Revisar cadenas, Tranducir]

Revisar cadenas [Administración, Revisar cadenas]

Editar cadena cuando son obligatorias las sugerencias [Administración, Revisar cadenas]

Editar cadenas fuente [Administración, Editar origen, Usuario avanzado]

Sugerencias

Aceptar sugerencia [Administración, Editar fuente, Usuario avanzado, Revisar cadenas, Traducir]

Añadir sugerencia [Administración, Editar fuente, Añadir sugerencia, Usuario avanzado, Revisar cadenas, Traducir]

Borrar sugerencia [Administración, Usuario avanzado]

Votar sobre la sugerencia [Administración, Fuente de edición, Usuario avanzado, Revisión de cadenas, Traducción]

Traducciones

Agregar idioma para la traducción [ Administración, Usuario avanzado, Administrar idiomas]

Perform automatic translation [Administration]

Eliminar la traducción existente [Administración, Gestión de idiomas]

Download translation file [Administration, Edit source, Access repository, Power user, Review strings, Translate, Manage languages]

Añadir varios idiomas para la traducción [Administración, Gestión de idiomas]

Cargas

Definir autor/a de la traducción cargada [Administración]

Sobrescribir las cadenas existentes con la carga [Administración, Editar fuente, Usuario avanzado, Cadena de revisión, Traducir]

Subir traducciones [Administración, Editar fuente, Usuario avanzado, Revisar cadenas, Traducir]

Sistema de control de versiones

Acceder al repositorio interno [Administración, Acceso al repositorio, Usuario avanzado, Gestión del repositorio]

Enviar cambios al repositorio interno [Administración, Gestionar el repositorio]

Enviar cambios del repositorio interno [Administración, Gestionar el repositorio]

Resetear los cambios del repositorio interno [Administración, Gestionar el repositorio]

Ver la ubicación del repositorio del cliente al servidor [Administración, Acceso al repositorio, Usuario avanzado, Gestionar repositorio]

Actualizar el repositorio interno [Administración, Gestionar repositorio]

Privilegios en todo el sitio

Utilizar interfaz de gestión

Añadir proyectos nuevos

Añadir definiciones de idioma

Gestionar definiciones de idioma

Gestionar grupos

Administrar usuarios

Gestionar roles

Gestionar anuncios

Gestionar memoria de traducción

Gestionar listas de componentes

Nota

Los privilegios para todo el sitio no se conceden a ningún rol por defecto. Estos son poderosos y bastante cercanos al estatus de superusuario. La mayoría de ellos afectan a todos los proyectos en tu instalación de Weblate.

Lista de grupos

Los siguientes grupos se crean en el momento de la instalación (o después de ejecutar setupgroups) y eres libre de modificarlos. Sin embargo, la migración los volverá a crear si los eliminas o les cambias el nombre.

Invitados

Define los permisos que tendrán los usuarios no autenticados.

Este grupo contiene solo usuarios anónimos (vea ANONYMOUS_USER_NAME).

Puedes eliminar los roles de este grupo para limitar los permisos de los usuarios no autenticados.

Roles por defecto: Añadir sugerencia, Acceder al repositorio

Lectores

Este rol asegura la visibilidad de los proyectos públicos para todos los usuarios. Por defecto, todos los usuarios son miembros de este grupo.

Por defecto, asignación automática de grupo hace que, cuando se unen, todas las cuentas nuevas sean miembros de este grupo.

Roles por defecto: ninguno

Usuario/as

Grupo predeterminado para todos los usuarios.

Por defecto, asignación automática de grupo hace que, cuando se unen, todas las cuentas nuevas sean miembros de este grupo.

Roles por defecto: Usuario/a avanzado/a

Revisores

Grupo de revisores (ver Flujos de trabajo de traducción).

Roles por defecto: Cadenas de revisión.

Supervisores

Grupo para administradores.

Roles por defecto: Administración

Advertencia

Nunca elimines grupos y usuarios predefinidos de Weblate, ya que esto puede provocar problemas inesperados. Si no los utilizas, puedes eliminar todos sus privilegios.

Restricciones de acceso adicionales

Si deseas utilizar tu instalación de Weblate de una manera menos pública, es decir, permitir nuevos usuarios sólo por invitación, puedes hacerlo configurando Weblate de tal manera que sólo los usuarios conocidos tengan acceso a él. Para ello, puedes fijar REGISTRATION_OPEN a False para evitar el registro de nuevos usuarios, y fijar REQUIRE_LOGIN a /.* para requerir el inicio de sesión para acceder a todas las páginas del sitio. Esta es básicamente la forma de bloquear tu instalación de Weblate.

Consejo

Puedes usar la función invitaciones para añadir nuevos usuarios.