Grant_Admin / Revoke_admin عبر API يحتاج إلى مراجعة

يجب إما توفير إعداد لتعطيل رسائل البريد الإلكتروني للتأكيد أو إرسال رسائل تأكيد عند سحب صلاحيات المسؤول، حيث قمت بإعداد شيء ما لتعديل صلاحيات المسؤول عبر واجهة برمجة التطبيقات (API) ولا يمكنني استخدامه وظيفيًا عبر النظام، وفقدت صلاحيات المسؤول على حسابي الخاص بسبب ذلك، وكذلك عدة حسابات أخرى، لأنه يتطلب تأكيدًا عبر البريد الإلكتروني، لكن النظام لم يكن يحتوي على بريد إلكتروني للتأكيد بطريقة ما؟ وبما أن سحب الصلاحيات لا يحتاج بالتأكيد إلى ذلك.

أفضل خيار عندي هو وجود إعداد لتعطيل التأكيد على مستوى واجهة برمجة التطبيقات (API).

لقد اختبرت هذا للتو على موقعي الخاص. يتم إلغاء حالة المسؤول عبر واجهة برمجة التطبيقات (API) عن طريق إرسال طلب PUT إلى https://forum.yourdomain.com/admin/users/<user_id>/revoke_admin. عند تجربتي، يتم إلغاء حالة المسؤول دون الحاجة إلى تأكيد عبر البريد الإلكتروني. ومع ذلك، أواجه بعض المشكلات في الاستجابة التي يرسلها Discourse لهذا الطلب.

إذا كان لدى المستخدم بالفعل حالة مسؤول، فإنني أحصل على استجابة فارغة بدلاً من رسالة نجاح عند إلغاء حالة مسؤوليته عبر واجهة برمجة التطبيقات.

أما إذا لم يكن لدى المستخدم حالة مسؤول، فأنا أحصل على استجابة بصيغة HTML إذا تم إرسال طلب PUT إلى https://forum.yourdomain.com/admin/users/<user_id>/revoke_admin، بينما أحصل على خطأ invalid access (وصول غير صالح) إذا قمت بإرسال الطلب إلى https://forum.yourdomain.com/admin/users/<user_id>/revoke_admin.json.

سيكون من الجيد الحصول على رسائل نجاح وفشل مفصلة لهذه المسار.

أنا لست متأكدًا بشأن السماح بمنح حالة المسؤول دون رسالة تأكيد عبر البريد الإلكتروني. فالطريقة الحالية مصممة لتوفير طبقة أمان إضافية.

3 إعجابات

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

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

كما لا توجد إمكانية لإيقاف هذا التأكيد، مما يعني أنه يمكنك منح صلاحيات المدير مباشرة عبر واجهة برمجة التطبيقات (API) إذا كان لديك مدير يمتلك جميع الصلاحيات.