Hạn chế người dùng biên tập chỉ chỉnh sửa nội dung bằng một ngôn ngữ cụ thể


15

Tôi đang cố gắng tạo vai trò cho các biên tập viên trong đó một biên tập viên chỉ có quyền truy cập để chỉnh sửa nội dung tiếng Anh và người khác chỉ có quyền truy cập vào nội dung bằng ngôn ngữ khác.

Tôi đã nghiên cứu khá lâu, cũng đã kiểm tra Truy cập nội dung, nhưng tôi chưa tìm thấy giải pháp nào.

Làm thế nào tôi có thể làm điều này xảy ra?

Cảm ơn bạn!



1
Tôi không nghĩ vậy, bởi vì vấn đề của tôi không chỉ là dịch thuật. Đó cũng là sự cho phép tạo và chỉnh sửa các nút riêng biệt.
Bálint Deáki

Ồ .. Okies. Hiểu rồi.
Sumit Madan

1
drupal.org/project/i18n_access bạn có thể dùng thử, tương tự như yêu cầu của bạn
Bala

Câu trả lời:


2

Câu trả lời Được chỉ định ở đây sẽ giúp bạn cho phép-dịch-dịch-một-ngôn ngữ cụ thể

Sau khi cài đặt Module quản lý dịch ,

Bạn có thể tạo người dùng với khả năng dịch thuật của họ

Bạn có thể chỉ định rằng người dùng chỉ có thể dịch từ tiếng Anh sang tiếng Tây Ban Nha và một người dùng khác có thể dịch từ tiếng Anh sang tiếng Pháp trong khi tạo người dùng

  • Tạo người dùng mới với vai trò người dùng: Translator (được tạo khi tmgt moduleđược cài đặt)

  • Sau đó chọn kỹ năng dịch thuật của anh ấy / cô ấy như hình dưới đây:

nhập mô tả hình ảnh ở đây


1
Trong trường hợp này, tôi sẽ cần quyền cho người dùng tạo / chỉnh sửa nội dung của một ngôn ngữ cụ thể, như tôi đã mô tả, nó không dành cho dịch thuật.
Bálint Deáki


0

Bạn có thể thay thế hoặc thay đổi cuộc gọi lại truy cập cho các biểu mẫu chỉnh sửa nút bằng hook_menu_alter .

Để tạo quyền sẽ hiển thị trong màn hình quyền dựa trên các ngôn ngữ khả dụng của bạn, bạn sẽ cần một mô-đun tùy chỉnh có móc này:

/**
 * 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;
}

Điều này sẽ đặt một hộp đánh dấu vào trang quyền dưới tên mô-đun của bạn cho từng ngôn ngữ trên trang web. Tôi sẽ giả sử tên ngôn ngữ không thay đổi trong trường hợp này là an toàn để làm.

Sau đó, bạn chỉ cần sử dụng chúng để chặn truy cập nếu người dùng không được phép như thế này:

/**
 * 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;
}

Lưu ý, thực hiện theo cách này, vai trò sẽ cần quyền 'chỉnh sửa nút' VÀ quyền dựa trên ngôn ngữ để chỉnh sửa bất kỳ nút nào.


Điều đó đang được nói, có vẻ như mô-đun i18n_access sẽ thực hiện thủ thuật.
Darvanen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.