إضافة أدوات قانونية

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

راجع المنشور السابق، أعتقد:

لا، لقد كانت إعدادات الموقع هذه مفعّلة بالفعل، وهذه هي البيانات التي أملكها بالفعل.
لكن ذلك لا يشمل السجلات الإدارية، كما كتب أنغوس أعلاه:

والآن أنا أبحث عن كيفية استخراج هذه السجلات الإدارية.]

حسنًا، اعتقدت أن هذا هو معنى ممتد — فهو كل ما يمكن تصديره عمليًا.

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

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

  1. قم بتثبيت إضافة مستكشف البيانات

  2. أنشئ استعلامًا جديدًا (ربما سمّه “سجلات المستخدم الإضافية (GDPR)”)

  3. ابحث عن “user_id” في مستكشف المخطط على اليمين لمعرفة أي جداول قاعدة البيانات تتضمن معرف مستخدم. سترى أن عددًا منها مُدرج بالفعل (انظر القائمة في المنشور الأصلي + “نشاط المستخدم” كما ذُكر في منشوري الثاني).

  4. حدد user_id للمستخدم المعني (يمكنك العثور عليه في /u/username.json)

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

    select * from [table_name] where user_id = [user_id]
    

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

قد تحتوي السجلات على معلومات أخرى ذات صلة بمستخدمين آخرين لديهم مصالح متعارضة، أو قد تكون حساسة بطريقة أخرى. للأسف، لا توجد إجابة واحدة على سؤال “النطاق” هنا. ستحتاج إلى اتخاذ هذا القرار بناءً على كيفية قراءتك لمزيجك المحدد من المسؤوليات. لائحة حماية البيانات العامة (GDPR) ليست المسؤولية الوحيدة ذات الصلة هنا. لا يجب عليك تسليم كل سجل يحتوي على معرف المستخدم.

في الواقع، أنا غير واضح قليلاً حول ما يدفع الاهتمام بهذه السجلات الإضافية؟ هل هذا شيء طلبه المستخدم، أي يتجاوز ما هو مُدرج بالفعل؟ إذا لم يكن كذلك، فما الدافع وراء ذلك؟ هل هو تفسير مختلف لمسؤولياتك بموجب لائحة حماية البيانات العامة (GDPR) مما شرحتُه أعلاه؟ إذا كان الأمر كذلك، فسأكون مهتمًا بمعرفة المزيد والمنطق القانوني الكامن وراء ذلك (قد أرغب في دمج هذا المنطق في هذه الإضافة).

إعجابَين (2)

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

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

أفهم ذلك.

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

ولكن إذا احتجت إلى شيء محدد مع تقدم هذه القضية، فسأكون سعيدًا بمساعدتك مجانًا، لأن هذا يتماشى مع روح هذه الإضافة، أي تسهيل عملية تنقل مجتمعات Discourse مع اللائحة العامة لحماية البيانات (GDPR). وإذا حدث ذلك، وكان لديك جداول محددة في ذهنك وتحتاج إلى مساعدة في استعلام SQL، فالرجاء مراسلتي هنا على منصة Meta.

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

4 إعجابات

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

3 إعجابات

هذا الإضافة رائعة!

التعامل مع طلبات الوصول الخاصة بـ GDPR أمر مزعج ويستغرق وقتًا طويلاً، وهذه الإضافة تساعد في تغطية كل ذلك بثقة أكبر. شكرًا لك.

هل توجد خطط لإضافة ميزات أكثر؟ تحديدًا، أواجه صعوبة في مبادئ الاحتفاظ بالبيانات وتقليلها. على وجه التحديد، أنا مهتم بتقليل “السجلات الإدارية” — مثل الرسائل الخاصة والمنشورات في مناطق الفرق التي قد تحتوي على ملاحظات حول عناوين IP وبيانات تعريف شخصية أخرى تتطلب فرزًا وبحثًا يدويًا. بعد خمس سنوات، أصبح هناك الكثير الذي يجب مراجعته، بينما القيمة في الرسائل القديمة ضئيلة، لذا أرغب/أحتاج إلى حذفها نهائيًا. في الواقع، أود تطبيق سياسة احتفاظ مدتها 6 أشهر فقط على مثل هذه الرسائل والرسائل الخاصة.

لذلك يمكنني اختيار وحذف العناصر باستخدام rake، لكنها تُعلَّم فقط بأنها محذوفة ولا تزال موجودة بالكامل في قاعدة البيانات :frowning:

لذا كنت أفكر في إضافة “مُبيد” ستقوم إما بتغيير النص الخام والمُطبوخ للمنشورات المحذوفة إلى شيء مثل “تم تدمير هذه الرسالة”، أو (الأفضل) فك ربط المنشورات وإزالتها تمامًا. وبما أنني لم أكتب Ruby أو إضافة من قبل، فليست لدي نقطة انطلاق مثالية، رغم أنني قد أكتب بعض استعلامات SQL لتشغيلها مباشرة على قاعدة البيانات، ثم أستخدم rake لإعادة بناء فهارس البحث بعد ذلك.

@angus - تساءلتُ عما إذا كانت لديك أي أفكار في اعتباراتك القانونية بشأن جوانب الاحتفاظ بالبيانات في GDPR، وكيف تتعامل معها؟

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

مثير للاهتمام!

نعم، أنا منفتح على إضافة ميزة لذلك. سأحتاج إلى النظر فيها بعمق أكبر بعد إجراء بعض الأبحاث الإضافية.

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

إعجابَين (2)

هل لا يزال هذا المكون الإضافي قيد الصيانة؟

لا يبدو أنني أستطيع تبديل الإعداد لتمكين المكون الإضافي :pray:

مرحباً نيك، سأحاول إلقاء نظرة على هذا الأسبوع المقبل.

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

أقدر ذلك حقًا! :pray:

مرحباً، عثرت على هذا وأتساءل عن مدى تضمين هذا بالفعل أو التخطيط لتضمينه في النواة.

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

يبدو أن شيئًا ما قد تعطل قبل الأمس

لا يمكن الموافقة على المستخدمين ولا يمكن تحميل صفحات مثل /admin/users/5996.json

plugins/discourse-legal-tools/lib/export_csv_file_extension.rb:41:in `can_export_entity?'
app/serializers/admin_detailed_user_serializer.rb:189:in `include_latest_export?'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:375:in `include?'
(eval at /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/active_model_serializers-0.8.4/lib/active_model/serializer.rb:467):74:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
app/controllers/application_controller.rb:499:in `serialize_data'
app/controllers/application_controller.rb:508:in `render_serialized'
app/controllers/admin/users_controller.rb:48:in `show'
actionpack (8.0.4) lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action'

نعم، هذا معطل منذ فترة طويلة. معظم الوظائف موجودة الآن في النواة (core).
سأضيف وسم broken.