مراقبة وإدارة كل غرفة على المنصة مباشرة
| الكود | المضيف | الحالة | الفئة | اللاعبون | النوع | أُنشئت | |
|---|---|---|---|---|---|---|---|
| جاري التحميل... | |||||||
بحث، تعديل، وإصلاح سجلات اللاعبين
| اللاعب | البريد | الرتبة | نقاط | ألعاب | حالة | مدير |
|---|
مراجعة والرد على بلاغات اللاعبين
| المُبلَّغ عنه | السبب | المُبلِّغ | الغرفة | الوقت | الحالة |
|---|
اللاعبون المحظورون حالياً
| اللاعب | السبب | تاريخ الحظر | ينتهي |
|---|
بث رسالة لكل اللاعبين المتصلين
إدارة قوائم الكلمات المستخدمة في اللعب
تصفح وتعديل أي مسار في قاعدة البيانات مباشرة
فحص تلقائي لتناسق البيانات ووظائف اللعبة، مصنّف حسب الخطورة
صلاحية المدير (isAdmin) يتم منحها حالياً عبر رمز يُتحقق منه من المتصفح، ثم يقوم المتصفح نفسه بكتابة isAdmin: true — وهذا لا يمكن أن يكون آمناً بمفرده: أي شخص يعرف الرمز (أو حتى بدون معرفته، لو قواعد الأمان تسمح بالكتابة) يمكنه منح نفسه صلاحية المدير مباشرة من console المتصفح. الإصلاح الحقيقي الوحيد هو قواعد Realtime Database — أضف هذا في Firebase Console → Realtime Database → Rules:
"players": {
"$uid": {
"isAdmin": {
".write": "auth != null && auth.uid === $uid && (root.child('players').child($uid).child('isAdmin').val() === true || newData.val() === false)"
}
}
}
هذا يمنع أي مستخدم من منح نفسه isAdmin: true — فقط من كان مديراً بالفعل يمكنه تعديل هذا الحقل (أو إزالته عن نفسه). منح صلاحية مدير جديدة يجب أن يتم يدوياً من Firebase Console.