Ben bir binanın sürecinde ben geliştiriyorum bir web çerçevesinin bir parçası olarak bir erişim kontrol sistemi değilim. Ben süper esnek ve müthiş yapmak istiyorum. Benim tasarımı girdi ve içgörü sağlayarak bana yardımcı olabilir misiniz? İşte benim iş (benim özel sorular dipte) şimdiye kadar:
Users
- Kullanıcılar bir kullanıcı adı (32 karakter, boşluksuz) ve şifreye sahip
- Kullanıcılar, doğrulanması gereken bir ya da e-posta adresleri var daha
- Kullanıcılar kendi kullanıcı adı veya e-posta adreslerinden herhangi birini kullanarak giriş yapabilirsiniz
- Kullanıcılar, sıfır veya çok hesabı ile ilişkili olabilir
Accounts
- Hesapları, bir veya daha fazla kullanıcı temsil
- Her kullanıcı hesabı için özel izinler veya rolleri olabilir (örneğin, hesap sahibinin veya "yeni bir kullanıcı ekleyebilir")
- Tüm hesaplar bir hesap türüne bağlıdır
Account Types
- Hesap türleri sıfır veya çok hesap türü rollere sahip
- Hesap türleri sıfır veya çok hesap türü özelliklere sahip
Account Type Roles
- Örneğin, vb "sahibi", "Yönetici", "Power User", "Misafir",
- Hesap tipi rolleri hesap türü izinlerini bir koleksiyonu vardır
Account Type Permissions
- Hesap türü izinler uygulama mantığı karşı teyit edecektir sisteminin belirli eylemlerdir
- Onlar bir üst referans olabilir, bu yüzden hiyerarşik olarak gruplandırılmış olabilir
- E.g.:
- "User Management"
- "Kullanıcı Ekle"
- "Kullanıcıyı Kaldır"
- "User Management"
- Bu izinler, bir hesap türü özelliği için özel olabilir
Account Type Features
- Hesap türü özellikleri ona daha fazla izin vermek için bir hesap aktive edilebilir
- Örneğin, "Standart Hesap" veya "Premium Account"
- Bu özellikler, bir hesap aktive eğer, hesap sahibine sisteme daha fazla erişim verecek
- Onlar etkin veya devre dışı ve periyodik karşı ya da talep üzerine fatura edilebilir zaman onlar izlenir
Questions
Bir kullanıcı eylemine karşı uygulama mantığı kontrol için en iyi yolu nedir? Ben onların oturumu için bir nesneye kullanıcının tüm izinlere depolama düşünüyordum (Ben bir hayranı değilim izinleri, yenilemek için bir çıkış / giriş gerektirecek - gerçek zamanlı izin yönetimi üzerinde herhangi bir fikir?):
{
"All Permissions": {
"User Management": {
"Kullanıcı Ekle",
"Delete User"
},
"Premium Account": {
"Download Files",
"Upload Files"
},
}
}
Daha sonra sistem içinde belirli bir eylem için gerekli izinleri beyan ederim. Belki bir şey gibi:
Permission::require('Add User');
Ilan izinleri kullanıcıların izin nesne olmasaydı, istek başarısız olur. Bu tür yoğun her kullanıcı eylem için olsa görünüyor. Ayrıca, izinler diğer bir alt dize "Kullanıcı Ekle" ne varsa?
Bu herhangi bir yardım için şimdiden teşekkür ederiz!