Restrinja al usuario del editor para que solo edite contenidos en un idioma específico


15

Estoy tratando de crear un rol para editores donde un editor solo tiene acceso para editar contenidos en inglés y el otro solo tiene acceso a contenidos en otro idioma.

He estado investigando durante bastante tiempo, también revisé Content Access, pero no he encontrado ninguna solución.

¿Cómo puedo hacer que esto suceda?

¡Gracias!



1
No creo que lo sea, porque mi problema no es solo con la traducción. Es el permiso de crear y editar nodos por separado también.
Bálint Deáki

Oh .. Okies Entendido.
Sumit Madan

1
drupal.org/project/i18n_access puedes probarlo, similar a tu requerimiento
Bala

Respuestas:


2

La especificada aquí respondida le ayudaría a dar permiso para traducir un idioma específico

Después de instalar el Módulo de gestión de traducción ,

Puedes crear usuarios con sus capacidades de traducción

Puede especificar que un usuario solo puede traducir del inglés al español y otro usuario puede traducir del inglés al francés mientras crea el usuario

  • Cree un nuevo usuario con rol de usuario: Traductor (que se crea cuando tmgt modulese instala)

  • Luego elija sus habilidades de traducción como se muestra a continuación:

ingrese la descripción de la imagen aquí


1
En este caso, necesitaría permisos para que los usuarios creen / editen contenidos de un idioma específico, como describí, no es para traducción.
Bálint Deáki


0

Puede reemplazar o cambiar la devolución de llamada de acceso para los formularios de edición de nodos utilizando hook_menu_alter .

Para hacer un permiso que se mostrará en la pantalla de permisos en función de los idiomas disponibles, necesitaría un módulo personalizado con este enlace:

/**
 * Implements hook_permission().
 */
function MODULENAME_permission(){

  //do something here to get an array of language names: $languages (I'm not familiar with i18n)

  foreach ($languages as $lang) {
    $permissions[$term->name] = array(
      'title' => t($lang->name), //Or wherever the langauge name is stored
      'description' => t('Edit content in '. $lang->name), //Again, adjust as needed
    );
  }

  return $permissions;
}

Esto colocará una casilla en la página de permisos debajo del nombre de su módulo para cada idioma en el sitio. Asumiré que los nombres de los idiomas no cambian, en cuyo caso es seguro hacerlo.

Entonces solo necesita usarlos para bloquear el acceso si el usuario no está permitido de esta manera:

/**
 * Implements hook_node_access($node, $op, $account).
 */
function MODULENAME_node_access($node, $op, $account){

  //Get the language name for the node and store in variable $lang (again, I don't know how)

  //Then see if the user can do anything except view it
  if ($op != 'view'){
    if (!user_access($lang)){
      return NODE_ACCESS_DENY;
    }
  }

  return NODE_ACCESS_IGNORE;
}

Tenga en cuenta que, al hacerlo de esta manera, el rol necesitará el permiso 'editar nodos' Y el permiso basado en el idioma para editar cualquier nodo.


Dicho esto, parece que el módulo i18n_access hará el truco.
Darvanen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.