مراقبة الموضوع باستخدام عنوان البريد الإلكتروني دون الحاجة إلى التسجيل

لقد قضيت بعض الوقت الجيد في البحث في الكود. أعتقد أن شيئًا كهذا (تحذير: من المحتمل جدًا ألا يعمل لأنني لم أجربه بعد) سيعمل للسماح للمستخدم بنشر رد باستخدام البريد الإلكتروني فقط. سأكون ممتنًا لأي تعليقات لديك.

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

class SomePluginController < ApplicationController

  # تأكد من وجود مستخدم مرحلي في قاعدة البيانات
  def ensure_user

    # تحقق مما إذا كان المستخدم المرحلي موجودًا
    user = User.where(staged: true).with_email(params[:email].strip.downcase).first

    # إنشاء مستخدم مرحلي يدويًا
    if !user
      user = User.new
      user.staged = true
      user.email = params[:email]
      user.active = false
      user.save!
    end
    
    user
  end

  # مشاهدة الموضوع كمستخدم مرحلي
  def staged_watch

    user = ensure_user

    topic = Topic.find(params[:topic_id].to_i)
    TopicUser.change(user, topic.id, notification_level: params[:notification_level].to_i)

  end

  # الرد على الموضوع كمستخدم مرحلي
  def staged_reply
 
    user = ensure_user

    manager = NewPostManager.new(user,
                             raw: params[:body],
                             topic_id: params[:topic_id])
    result = manager.perform

  end

end
3 إعجابات