Editör kullanıcısının yalnızca belirli bir dilde içeriği düzenlemesini kısıtlama


15

Editörler için bir düzenleyicinin yalnızca İngilizce içeriği düzenleme erişimine sahip olduğu ve diğerinin yalnızca başka bir dildeki içeriklere erişebildiği bir rol oluşturmaya çalışıyorum.

Uzun süredir araştırıyorum, Content Access'i de kontrol ettim, ancak herhangi bir çözüm bulamadım.

Bunu nasıl yapabilirim?

Teşekkür ederim!



1
Bence öyle değil, çünkü benim sorunum sadece çeviri ile ilgili değil. Düğümleri ayrı ayrı oluşturma ve düzenleme iznidir.
Bálint Deáki

Oh .. Okies. Anladım.
Sumit Madan

1
drupal.org/project/i18n_access , ihtiyacınıza benzer şekilde deneyebilirsiniz
Bala

Yanıtlar:


2

Burada belirtilen cevap, belirli bir dili tercüme etmek için izin vermenize yardımcı olacaktır

Çeviri Yönetimi Modülünü kurduktan sonra ,

Çeviri yetenekleriyle kullanıcılar oluşturabilirsiniz

Bir kullanıcının yalnızca İngilizce'den İspanyolca'ya çevirebileceğini ve başka bir kullanıcının kullanıcıyı oluştururken İngilizce'den Fransızcaya çevirebileceğini belirtebilirsiniz.

  • Kullanıcı rolüne sahip yeni bir kullanıcı oluşturun : Çevirmen ( tmgt moduleyüklendiğinde oluşturulur )

  • Daha sonra aşağıda gösterildiği gibi Çeviri becerilerini seçin:

resim açıklamasını buraya girin


1
Bu durumda, kullanıcıların açıkladığım gibi, belirli bir dilin içeriğini oluşturması / düzenlemesi için izinlere ihtiyacım var, çeviri için değil.
Bálint Deáki


0

Düğüm düzenleme formlarının erişim geri aramasını hook_menu_alter komutunu kullanarak değiştirebilir veya değiştirebilirsiniz .

Kullanılabilir dillerinize bağlı olarak izinler ekranında görünecek bir izin almak için, bu kancaya sahip özel bir modüle ihtiyacınız olacaktır:

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

Bu, sitedeki her dil için modül adınızın altındaki izinler sayfasına bir onay kutusu koyacaktır. Dil adlarının değişmediğini varsayacağım, bu durumda bunu yapmak güvenlidir.

Ardından, kullanıcının bu şekilde izin verilmemesi durumunda erişimi engellemek için bunları kullanmanız yeterlidir:

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

Bu şekilde, rolün herhangi bir düğümü düzenlemek için 'düğümleri düzenle' iznine VE dil tabanlı izne ihtiyacı olacağını unutmayın.


Olduğu söyleniyor, i18n_access modülü hile yapacak gibi görünüyor.
Darvanen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.