يمكنك تطبيق هاته المقاربة عن طريق:
انشاء جدول يعبر عن انموذج بيانات الدور Role وليكن باسم roles، يمتلك الخاصية permissions، فيكون مشابها لـ:
const Role = new mongoose.Schema({
role: {
type: String,
default: "user",
unique: true
},
permissions: {
type: [String]
}
})
طبعا سيحتاج انموذج بيانات المستخدم هو الآخر تمثيلا للدور كأحد خصائصه او اعمدته فيكون انموذج بيانات المستخدم User كـ:
const User = new mongoose.Schema({
username: {
type: String,
required: true,
unique: true
},
password: {
type: String,
required: true
},
role: {
type: String,
default: 'user'
},
الآن لن نحتاج الا انشاء الادوار اللازمة وارفاقها بالأذونات المناسبة.
وأخيرا، سنحتاج التحقق من امتلاك المستخدم [لدور معين] ثم [لصلاحية معينة] قبل القيام بالأكشن المعنية عن طريق استعلامات Mongo العادية أو ايا كان ما تستخدميه في قواعد البيانات. ولما لا، تنظيم العملية أكثر عن طريق جعلها كطبقة وسيطة Middleware.