سؤال

أنا مناقشة أفضل وسيلة لنشر معقدة إلى حد ما الأذونات من الخادم إلى اياكس التطبيق ، وأنا لست متأكدا من النهج الأفضل أن تأخذ.

أساسا, أريد الأذونات إلى تعريف لذلك أنا يمكن طلب مجموعة كاملة من الأذونات في طلقة واحدة ، و ضبط واجهة المستخدم حسب الاقتضاء (التغييرات واجهة المستخدم يمكن أن تكون منخفضة المستوى مثل تعطيل بعض بنود قائمة السياق).بالطبع, أنا لا تزال تحتاج إلى تطبيق الأذونات من جانب الخادم.

لذلك أنا أتساءل عما إذا كان أي شخص لديه أي اقتراحات أفضل طريقة

  1. الحفاظ على أذونات استخدام لهم في رمز الملقم
  2. يكون من السهل الوصول إلى الأذونات في جافا سكريبت
  3. لا يكون لديك لجعل رحلة ذهاب وعودة الطلب إلى الخادم لكل فرد إذن

الأفكار ؟

هل كانت مفيدة؟

المحلول

إذا كان لديك مجموعة واضحة من الأذونات ، مثل "مستوى المستخدم" أو "المستخدم نوع" يمكنك فقط تمرير قيمة في حقل مخفي و الوصول إلى القيمة من خلال دوم.هل يمكن أن لا تزال تفعل هذا إذا كان لديك أذونات كانت أكثر دقة ، ولكن كنت إما لديهم الكثير من الحقول المخفية أو قد تضطر إلى ترميز المعلومات في XML أو JSON أو أي شكل آخر.

قد مجموعة منهم بعض الأعلام بحيث يمكن أو واحد قيمة رقمية مع قناع لمعرفة ما إذا كان المستخدم لديه إذن نشاط محدد.التي من شأنها أن تكون مرنة جدا و طالما لم يكن لديك أكثر من 32 أو محددة جدا "الحقوق" التي من شأنها أن تسمح لأي التقليب من تلك الحقوق في مجموعة صغيرة جدا (في الأساس غير موقعة الباحث).

على سبيل المثال:

0x00000001 //edit permission
0x00000002 //create new thing permission
0x00000004 //delete things permission
0x00000008 //view hidden things permission
   .
   .
   .
0x80000000 //total control of the server and everyone logged in

ثم مستخدم مع إذن من 0x000007 يمكن تحرير, إنشاء, حذف, ولكن لا شيء آخر.

في كلتا الحالتين, أعتقد أنك على الطريق الصحيح - تقديم الطلب مرة واحدة في كل صفحة الاحتجاج, تخزين الأذونات في جافا سكريبت البيانات هيكل ، والذهاب من هناك.اياكس جميل ولكن كنت لا ترغب في الاستعلام عن ملقم لكل تصريح محدد في جميع أنحاء الصفحة الخاصة بك.يمكنك أن تفعل ذلك مرة واحدة على تحميل الصفحة ، قم بإعداد عرض الصفحة الخاصة بك و حفظ القيمة في متغير عمومي ، ثم الرجوع إلى إذن(s) محليا الحدث وظائف.

نصائح أخرى

إذا كنت تنقل إذن هيكل إلى العميل باعتباره كائن JSON (XML أو, إذا كنت تفضل ذلك) ، يمكنك التعامل مع هذا الكائن مع رمز العميل وإرسالها مرة أخرى إلى الخادم التي تستطيع أن تفعل ما يحتاج إلى التحقق من صحة البيانات و تستمر عليه.

لا ترى بالضرورة أنها الأكثر "الصحيح" الحل, ولكن هل من الممكن للحفاظ على جميع إذن الاشياء على جانب الملقم ، فقط خدمة تحديث واجهة المستخدم بدلا من سلمان أذونات النظام ؟

سيكون لديك لاتخاذ قرار على أساس مدى مشغول مكثفة التطبيق الخاص بك تتوقع أن تكون ، ولكن بالتأكيد قرار صنع يستحق سواء السبيل

ترميز لهم سلمان.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top