SORU
14 EKİM 2009, ÇARŞAMBA


Ruby bir model içinde örnein erişim Raylar üzerinde

Ruby on Rails app ince taneli erişim kontrolü uygulamak gerekiyor. İzinler için bireysel kullanıcılar kaydedilmiş bir veritabanı tablo ve düşündüm ki en iyisi olalım, ilgili kaynak (yani örnek bir model) karar belli bir kullanıcı izin okuma veya yazma için. Denetleyicisi bu kararı, her zaman yapmak kesinlikle çok KURU olmaz.< / ^ br . Sorun bunu yapmak için, modeli geçerli kullanıcı erişim, may_readgibi bir şey aramak gerekiyor.?(current_user, attribute_name). Genel olarak modeller oturumu verilerine erişim, ama yok.

Geçerli iş parçacığının geçerli kullanıcı, örneğin this blog post başvuru kaydetmek için oldukça bazı öneriler var. Elbette bu sorunu çözmek istiyorsunuz.

Komşu Google sonuçları tavsiyede beni kurtarmak için bir başvuru için geçerli kullanıcı sınıfı olsa da, sanırım sanıyordum tarafından biri olan uygulama henüz uyum çok kullanıcının aynı anda. ;)

Uzun lafın kısası, geçerli kullanıcı (yani oturum verileri) model içinden erişim için dileğim benden geldiğini hissediyorum doing it wrong.

Yanılıyorsam nasıl bana söyleyebilir misiniz?

Teşekkürler!

CEVAP
15 EKİM 2009, PERŞEMBE


current_user modelin dışında tutmak için içgüdülerinin doğru olduğunu söyleyebilirim.

Daniel gibi sıska denetleyicileri ve yağ modelleri için çalışıyorum, ama aynı zamanda sorumlulukları net bir bölünme var. Kontrol amaçlı gelen istek yönetmek ve oturum. Model soruya cevap vermek gerekir "kullanıcı x, bu nesneye y Yapabilir mi?", ama current_user başvuru için anlamsız. Eğer varsa hangi konsol? Eğer bir cron çalışan olursa?

Doğru izinleri modeli API ile birçok durumda, bu çeşitli işlemler için geçerli olan 5* *tek satır ile ele alınabilir. Ancak eğer işler gittikçe daha karmaşık isteyebilirsiniz uygulamak ayrı bir katman (muhtemelen lib/) Bu kapsüller daha karmaşık yetkilendirme mantığı önlemek için kumandanız olmadan şişirilmiş, ve önlemek senin model olmak çok sıkı eşleşmiş web istek/yanıt döngüsü.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • InfinityWard

    InfinityWard

    19 EYLÜL 2006
  • LiveForGodsKingdom

    LiveForGodsK

    6 NİSAN 2008
  • SlimaksClass

    SlimaksClass

    15 Kasım 2010