2010-11-19 16 views
0

Raylar üzerindeki rubyomda seviye bazlı bir erişim kontrolü uygulamak istiyorum. Alt seviyedeki bir kullanıcı, ebeveyninin verilerine erişemeyeceği gibi. yapıda ÖrnekRaylardaki yakut seviyesinde seviye temelli kontroller

 
    Main Admin 
    | 
    |___ Sub Admin1 
    |  | 
    |  | 
    |  |___ SA1_USER1 
    |  | 
    |  |___ SA1_USER2 
    | 
    | 
    | 
    |___ Sub Admin2 
     | 
     |___ SA2_USER1 
     |  |  
     |  |__End_user1 
     |  |__End_user2 
     | 
     |___ SA2_USER2 

üzerindeki her kullanıcı bir kaydı oluşturmak demek. Ancak kayıtlar hiyerarşiye göre görüntülenecektir. Ana Yönetici, tüm kayıtlara erişebileceği gibi, Alt Yönetici1, self, SA1_user1 ve sa1_user2 tarafından oluşturulan kayıtlara erişebilir ve bu şekilde ..

Bunu raylarda yakutta uygulamak için iyi bir fiş var mı?

Teşekkürler, PraWin.

cevap

1

Bir eklenti bilmiyorum, ancak kendinizi yazmak çok zor olmaz. Kullanıcıların erişmesini istediğiniz her bir rekorda bir owner_id sahibi olmalı ve her kullanıcının bir ana kullanıcısı olacak, daha sonra user.is_ancestor_of için bir model metodu yazacak mıydınız? Bir kullanıcının bir kayda erişmeye çalıştığı her zaman kontrol etmek için record.owner.

+0

Evet, bunu aklımda var. Tüm ataları düğüm için ve ayrıca tüm çocukları bir düğüm için döndürecek herhangi bir yöntem var mı? – Pravin

+0

bildiğim bir şey yok, muhtemelen onu sıfırdan yazmak zorunda kalacaksınız. Umarım başka biri daha fazla bilgi sahibi olur. – re5et

+0

, bunu uygulamak için kullandığım güzel bir eklenti * ataları * var. – Pravin