# ترحيل كلمة مرور Drupal إلى Discourse باستخدام المكون الإضافي discourse-migrate-password

**URL:** https://meta.discourse.org/t/drupal-password-migrate-into-discourse-with-discourse-migrate-password-plugin/279694
**Category:** Migration
**Created:** [21 سبتمبر 2023، 1:27م UTC](https://meta.discourse.org/t/drupal-password-migrate-into-discourse-with-discourse-migrate-password-plugin/279694 "2023-09-21T13:27:11Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Hitesh\_Sharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hitesh_sharma/32/309992_2.png) [@Hitesh\_Sharma](https://meta.discourse.org/u/Hitesh_Sharma)
#### Post date: [21 سبتمبر 2023، 1:27م UTC](https://meta.discourse.org/t/drupal-password-migrate-into-discourse-with-discourse-migrate-password-plugin/279694/1 "2023-09-21T13:27:11Z")

</div>

١. **تثبيت وتفعيل المكون الإضافي** :

- ابدأ بتثبيت مكون Discourse Migrate Password الإضافي من الرابط التالي:

**مكون Discourse Migrate Password الإضافي**  
الرابط:  
([discourse-migratepassword/plugin.rb at master · communiteq/discourse-migratepassword · GitHub](https://github.com/communiteq/discourse-migratepassword/blob/master/plugin.rb)).

- بمجرد التثبيت، قم بتفعيل المكون الإضافي ضمن إعدادات Discourse الخاصة بك. هذا يتيح ترحيل كلمات المرور غير الآمنة إلى Discourse.

 ![لقطة شاشة من 2023-09-21 18-34-21](https://global.discourse-cdn.com/meta/original/4X/f/2/3/f23b8d5547f99fe49d9c8d0c07ec8da3593f941c.png)

٢. **إنشاء حقل مخصص** :

- ضمن Discourse، انتقل إلى إعدادات تخصيص المستخدم.
- هنا، قم بإنشاء حقل مخصص باسم “import\_pass”.

 ![لقطة شاشة من 2023-09-21 18-38-12](https://global.discourse-cdn.com/meta/original/4X/5/a/7/5a7158194f8e9695c7a5acdbeea0bc2aa770e548.png)

٣. **استيراد المستخدمين** :

- قم باستيراد مستخدم واحد أو أكثر إلى Discourse باستخدام طريقتك المفضلة.
- أثناء عملية الاستيراد، تأكد من تضمين سلسلة تجزئة (hash string) في حقل “import\_pass” لكل مستخدم.

٤. **محاولة تسجيل الدخول** :

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

 ![لقطة شاشة من 2023-09-21 17-02-04](https://global.discourse-cdn.com/meta/original/4X/8/3/9/839079814e4d74138d85196f743235a707ad7711.png)

٥. **تسجيل الدخول القياسي** :

- كبديل، يمكنك تسجيل الدخول بنجاح إلى Discourse باستخدام اسم المستخدم وكلمة المرور المرتبطين بالحساب.

يرجى مشاركة حل لاستخدام هذا المكون الإضافي في Discourse لترحيل كلمات مرور Drupal إلى Discourse  
@Discourse

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [21 سبتمبر 2023، 1:54م UTC](https://meta.discourse.org/t/drupal-password-migrate-into-discourse-with-discourse-migrate-password-plugin/279694/2 "2023-09-21T13:54:05Z")

</div>

لكي يكون لدى Drupal دعم للمستخدمين المستوردين، من الضروري تعديل مستوردي Drupal الحاليين بحيث يقومون بملء حقل import\_pass. المستورد الأساسي لديه دعم لهذا، لذا كل ما تحتاجه هو تغذية حقل قاعدة البيانات المطبق في الهيكل الذي تغذيه إلى `create_users` بالمفتاح `password`. على سبيل المثال، يقوم مستورد VBulletin بذلك [هنا](https://github.com/discourse/discourse/blob/main/script/import_scripts/vbulletin.rb#L160).

بالنسبة لمستوردي Drupal، هذا [هنا](https://github.com/discourse/discourse/blob/main/script/import_scripts/drupal.rb#L55-L81) و [هنا](https://github.com/discourse/discourse/blob/main/script/import_scripts/drupal-6.rb#L27-L34).

الخطوة 2 هي شيء غير مطلوب أو ضروري ولن يكون كذلك أبدًا. من أين حصلت على ذلك؟

يجب عليك تمكين المكون الإضافي بعد الاستيراد وتركه معطلاً أثناء الاستيراد.

لذلك، فإن الخطوات الصحيحة هي:

- استيراد المستخدمين
- تثبيت وتمكين المكون الإضافي

---

<div class="post-metadata">

### Author: ![Hitesh\_Sharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hitesh_sharma/32/309992_2.png) [@Hitesh\_Sharma](https://meta.discourse.org/u/Hitesh_Sharma)
#### Post date: [22 سبتمبر 2023، 12:51م UTC](https://meta.discourse.org/t/drupal-password-migrate-into-discourse-with-discourse-migrate-password-plugin/279694/3 "2023-09-22T12:51:20Z")

</div>

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

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

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [22 سبتمبر 2023، 3:25م UTC](https://meta.discourse.org/t/drupal-password-migrate-into-discourse-with-discourse-migrate-password-plugin/279694/4 "2023-09-22T15:25:26Z")

</div>

تعمل الإضافة عن طريق [تجاوز](https://github.com/communiteq/discourse-migratepassword/blob/master/plugin.rb#L210-L227) الدالة `confirm_password?` الخاصة بفئة المستخدم.  
تقوم أولاً باستدعاء فحص كلمة المرور الأصلي ولا تفعل شيئًا عندما يتم قبول كلمة المرور بواسطة منطق Discourse الأساسي.

إذا لم يكن الأمر كذلك، فإنها تتحقق مما إذا كان لدى المستخدم حقل مخصص `import_pass` وإذا كان الأمر كذلك، فإنها تستخدم جميع الخوارزميات المتاحة للتحقق من كلمة المرور المدخلة مقابل تجزئة `import_pass`.

إذا وجدت تطابقًا، فإنها تحفظ كلمة المرور المدخلة ككلمة مرور للمستخدم وتسمح للمستخدم بتسجيل الدخول.

---

<div class="post-metadata">

### Author: ![davidag](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/davidag/32/363501_2.png) [@davidag](https://meta.discourse.org/u/davidag)
#### Post date: [15 فبراير 2024، 4:21م UTC](https://meta.discourse.org/t/drupal-password-migrate-into-discourse-with-discourse-migrate-password-plugin/279694/5 "2024-02-15T16:21:02Z")

</div>

لقد أنشأت طلب سحب (PR) يضيف [دعم لتجزئات Drupal 6 التي تم ترحيلها إلى Drupal 7](https://github.com/communiteq/discourse-migratepassword/pull/17).

قد يكون هذا _سببًا_ لاعتبار بيانات الاعتماد غير صالحة كما هو موضح في هذا الموضوع.
