web-gelistirme-sc.com

Views modülü: Kullanıcı tarafından erişim nasıl sınırlandırılır

Views modülünü yalnızca belirli kullanıcıların erişebilmesi gereken bir görünüm oluşturmak için kullanıyorum. Views rol veya izinleri ile erişim denetimi içerir biliyorum, ama daha ince taneli bir şeye ihtiyacım var: Temelde, sadece kullanıcı "x" ve kullanıcı "y" belirli bir görünüme (veya başka bir site yöneticisi rolü). Dolayısıyla bu, ACL modülünün bağımsız düğümler için nasıl davrandığına çok benzer bir şekilde işlev görür.

Özel görünümler erişim eklentisi oluşturmak için en iyi yaklaşım nedir? Bu konuda fazla deneyimim yok.

Ayrıca, bunu gerçekleştirmek için bazı doğrulama ile bir argüman kullanmayı merak ediyorum (böylece düzinelerce ayrı görünüm oluşturmak zorunda değilim). Örneğin, bu görünüm belirli bir düğüm yolunda bir sekme olacağından, bu düğümde görünümü kimlerin görebileceğini belirten bir kullanıcı başvuru alanı kurmayı merak ediyorum. Ben sadece görünüm geçerli kullanıcı kullanıcı başvuru alanında belirtilen bir kullanıcıya eşitse doğrulamak için bir yol gerekir.

Herhangi bir fikir? Yoksa bunu olması gerekenden daha mı karmaşık hale getiriyorum?

Teşekkürler, Ben

8
BenK

Görünüm'deki izinleri sınırlamak yerine, o görünüme götüren menü öğesindeki izinleri sınırlayabilirsiniz (bir düğümdeki sekme veya menü geri araması olsun). Görünümünüzü yalnızca "Varsayılanlar" ekranıyla ve Sayfa görüntülemesiyle oluşturabilirsiniz (böylece kullanıcılar ekranın yolunu bulamazlar). Sonra page callback menü öğesi için views_embed_view görünümü görüntülemek için. Bir menü öğesinde izinleri işlemek, Görünümler için yeni bir eklenti yazmaktan daha kolay olabilir (ancak bir eklenti başkaları için yararlı olabilir).

5
Chaulky

Views Access Callback modülünü deneyin.

Views için geri arama tabanlı erişim kontrolü sağlar.

Kullanılabilir geri arama işlevleri, hook_views_access_callbacks() işlevi (hook_perm()'deki gibi) kullanılarak modüller tarafından tanımlanır, ardından görünümün "Erişim kısıtlamaları" yapılandırmasında ayarlanabilir.

6
user5318

Bir şey eksik olmalıyım, ancak yeni bir rol oluşturup bu Kullanıcıları ekleyeceğiniz anlaşılıyor. Ardından Görünümlerin Erişimi: Rol özelliğini kullanın.

Erişim haklarını içerikteki bir şeye bağlamanız gerekiyorsa, ilk kez bir ağrı ayarı bulduğum, ancak bir kez çalıştıktan sonra esnekliği takdir ettiğim özel bir Views erişimi kullanırdım. Görünüm Menü Öğesini oluşturuyorsa, Görünüm erişim işlevini geçmezse görünmez.

Sadece bir menü öğesini saklıyorsanız, görünümün hala çalışacağı ve Kullanıcı'nın verileri görüntülemek için bir URI Tweak yapabileceği görülüyor.

Jerry

2
Jerry

Özellikle amaçlarınız için bazı yeni izinler oluşturmak için Özel İzinler modülünü kullanmaya ve ardından bu yeni izinleri tek tek kullanıcılara atamak için Kullanıcı İzinleri modülünü kullanmaya ne dersiniz?

Özel izinler modülü çok hafiftir. Aslında kullanıcı izinleri modülü hakkında o kadar emin değilim, çünkü aslında bu sahnelerin arkasındaki her kullanıcı için yeni bir rol oluşturuyor (bu roller ana izinler sayfasında görünmüyor). Çok fazla kullanıcınız varsa, bu, rollerinizin ve user_roles tablolarınızın boyutunu biraz artırabilir.

1
Tom Kirkpatrick

Views'da farklı erişim eklentilerini birleştirmek istiyorsanız Views access many modülüne göz atmak isteyebilirsiniz.

0
Steven Jones

Doğru, bu daha mantıklı. Bence bir Görünüm ve bir argüman kullanabilirsiniz (muhtemelen,% 100 emin değilim). Bağımsız değişkeni, şu anda oturum açmış olan kullanıcıdan alınan bir kullanıcı kimliği olarak ayarlayın ve varsayılan bağımsız değişkenin hiçbir şey göstermemesini sağlayın. Adil olabilmenin ne kadar güvenli olacağını bilmesem de, bunu yapabilmelidir. Denerseniz, geri gönderin ve ilerlemenizi bildirin.

0
Jamie Hollern