تعطلت ميزة حذف المستخدم في إعدادات Docker على بيئات staging/production، لكنها تعمل محليًا (بدون إعداد Docker)

مرحباً بالجميع،

لدي مشكلة حيث أن النافذة الثانوية لحذف المستخدم (النافذة التي تحذف المستخدم فعليًا، لا تظهر في بيئة الاختبار/الإنتاج (إعداد Docker)، ولكنها تعمل بشكل جيد محليًا - بدون إعداد Docker)


لا يحدث شيء عند الضغط على حذف فقط. محليًا، ينتقل إلى عرض “جارٍ الحذف…” ويحذف المستخدم.

لقد توقف عن العمل قبل بضعة أسابيع. كنت أستخدمه لحذف المستخدمين في ديسمبر من العام الماضي.

إعجاب واحد (1)

مرحباً ستيفان :wave:

هل يمكنك مشاركة إصدار Discourse الخاص بك؟

هل هناك أي خطأ في وحدة تحكم أدوات المطور في المتصفح؟

هل هناك أي خطأ في السجلات من لوحة تحكم مسؤول Discourse الخاصة بك؟

إعجاب واحد (1)

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

مثبت

2.5.0.beta7

( 2a17124a5b )

2.5 قديم جدًا الآن - حوالي عامين ونصف، وصل Discourse للتو إلى 3.0.
هل هناك أي سبب لعدم ترقيتك؟

3 إعجابات

يا إلهي، الكثير منها في الواقع :slight_smile:

لدينا إضافة مخصصة تقوم بتشغيل جميع المنطق، مما يجعل Discourse مجرد أداة لتخزين البيانات والتعامل مع التفويض والمصادقة الأساسية. نقوم بتشغيل واجهة برمجة تطبيقات تركز على الهاتف المحمول والتي تتعامل أيضًا مع التحقق من الدفع وتسجيل الدخول الاجتماعي مع تطبيقات الهاتف المحمول (تدفقات مخصصة) من بين ميزات متقدمة أخرى :slight_smile:

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

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

destroy(opts) {
    const user = this;
    const message = I18n.t("admin.user.delete_confirm");
    const location = document.location.pathname;

    const performDestroy = function(block) {
      bootbox.dialog(I18n.t("admin.user.deleting_user"));
      let formData = { context: location };
      if (block) {
        formData["block_email"] = true;
        formData["block_urls"] = true;
        formData["block_ip"] = true;
      }
      if (opts && opts.deletePosts) {
        formData["delete_posts"] = true;
      }
      return ajax(`/admin/users/${user.get("id")}.json`, {
        type: "DELETE",
        data: formData
      })
        .then(function(data) {
          if (data.deleted) {
            if (/^\\/admin\\/users\\/list\\//.test(location)) {
              document.location = location;
            } else {
              document.location = getURL("/admin/users/list/active");
            }
          } else {
            bootbox.alert(I18n.t("admin.user.delete_failed"));
            if (data.user) {
              user.setProperties(data.user);
            }
          }
        })
        .catch(function() {
          AdminUser.find(user.get("id")).then(u => user.setProperties(u));
          bootbox.alert(I18n.t("admin.user.delete_failed"));
        });
    };

    const buttons = [
      {
        label: I18n.t("composer.cancel"),
        class: "btn",
        link: true
      },
      {
        label:
          `${iconHTML("exclamation-triangle")} ` +
          I18n.t("admin.user.delete_and_block"),
        class: "btn btn-danger",
        callback: function() {
          performDestroy(true);
        }
      },
      {
        label: I18n.t("admin.user.delete_dont_block"),
        class: "btn btn-primary",
        callback: function() {
          performDestroy(false);
        }
      }
    ];

    bootbox.dialog(message, buttons, { classes: "delete-user-modal" });
  },

هل نظرت في الالتزامات التي تبعت هذا الإصدار تحديدًا؟

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

هل قمت بتحديث أي شيء منذ تثبيته على هذا البناء؟ أي إضافات خارجية؟

إعجاب واحد (1)

لا.. لقد توقف عن العمل في منتصف يناير تقريبًا، بينما كان التطبيق قيد التشغيل بالفعل. إنه أمر غريب جدًا.

إعجاب واحد (1)

وهل هناك أي أخطاء في /logs أو وحدة تحكم المتصفح لديك؟

إعجاب واحد (1)

هذه قائمة الإضافات الخاصة بي :slight_smile:

قام الأشخاص في docker_manager ببعض الأشياء مؤخرًا، https://github.com/discourse/docker_manager/commit/98205ea281ca73f0a255e6fbc919699b0623311f، مما أدى إلى تعطل إعدادي لبضعة أيام حتى وجدته… ولكن هذا هو كل شيء تقريبًا.

إعجاب واحد (1)

هل قمت بتثبيت إصدار Discourse في ملف app.yml الخاص بك؟

إعجاب واحد (1)

إذا كان لديك إضافة مخصصة، فلماذا لا تظهر في قائمة الإضافات؟ كيف تم تثبيت هذه النسخة؟

من الصعب بعض الشيء أن يتحرك شيء ما في الإعدادات :slight_smile:

لقد أرسلت الإصدار من الإصدار المنشور، وتم إنشاء دوكر بهذا الإصدار، وكل شيء مثبت.

حسنًا، لقد كتبته :slight_smile:
يقوم بسحب البيانات عند بناء الحاوية وتشغيلها :slight_smile: لذا فهي مرئية فقط في الكود.

إعجاب واحد (1)

هل هناك أي خطر من تحديث الصورة الأساسية؟ ارتفع Discourse_docker إلى ruby 3.1 في يناير وشهدنا عددًا من البيئات القديمة تتصرف بشكل غير متوقع مع التغيير.

إعجاب واحد (1)

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

إعجاب واحد (1)

لذا قمت بإنشاء آخر صورة دوكر منذ حوالي 5-6 أشهر… وما زلت أعتقد أنها كانت تشير إلى إصدار دوكر الذي كان متاحًا عندما كان إصدار discourse الخاص بي جديدًا :slight_smile: حيث قمنا بحفظ كل شيء مقدمًا. - نعم 24 يونيو 2020 :slight_smile:

للعلم: تمت إزالة docker_manager أيضًا. لم يتغير شيء

إعجاب واحد (1)

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

إذا كان بإمكان أي شخص المساعدة في هذا، فسيكون ذلك لطيفًا :slight_smile: