تغيير بريد الموظفين الإلكتروني من وحدة التحكم

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

:person_raising_hand: مستوى المستخدم المطلوب: مسؤول النظام

:warning: يتطلب الوصول إلى وحدة التحكم

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

:information_source: يمكن أيضًا استخدام هذه الأوامر لإجبار تغيير في عنوان البريد الإلكتروني للمستخدم وتجاوز الحاجة إلى قيامهم بالتأكيد عبر النقر على بريد التحقق الإلكتروني

الوصول إلى وحدة التحكم

اتصل بـ Droplet الخاص بك عبر SSH، أو استخدم Putty على نظام Windows:

ssh root@192.168.1.1

استبدل 192.168.1.1 بعنوان IP الخاص بـ Droplet الخاص بك.

انتقل إلى مجلد Discourse الخاص بك:

cd /var/discourse

ادخل إلى الحاوية:

./launcher enter app

أو

./launcher ssh app

الوصول إلى وحدة تحكم Rails:

rails c

تغيير عنوان البريد الإلكتروني

لتخصيص هذه الإعدادات للمستخدم الخاص بك، أدخل معلوماتك هنا:


أو

ثم قم بتشغيل هذه الأوامر (كل أمر في سطر منفصل)

u = User.find_by_id(=UserID=)
   *أو*
u = User.find_by_username("=Username=")
u.email = "=EMAIL="

:information_source: إذا وصل المستخدم إلى الحد الأقصى لرسائل البريد المرتدة (أي تجاوز معدل الارتداد الخاص به العتبة المحددة في موقع Discourse الخاص بك)، فإن إنشاء رمز بريد إلكتروني جديد باستخدام u.email_tokens.create(email: u.email) لن يكون له أي تأثير، وستحتاج أولاً إلى إعادة تعيين معدل الارتداد الخاص به قبل المتابعة.

u.email_tokens.create!(email: u.email, scope: EmailToken.scopes[:email_update])
u.save!

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

29 إعجابًا

يعطي هذا إشعار الإهمال التالي:

إشعار الإهمال: لا يمكن أن يكون نطاق EmailToken#scope فارغًا.
في /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/activesupport-8.0.4/lib/active_support/callbacks.rb:406:in BasicObject#instance_exec

لقد قمت بتعديل الويكي لتحديثه إلى هذا:

u.email_tokens.create(email: u.email, scope: 'change_email')
إعجابَين (2)