Suivre un sujet par adresse e-mail sans nécessiter d'inscription

J’ai passé du temps à examiner le code. Je pense que quelque chose comme ceci (attention : il est très probable que cela ne fonctionne pas car je ne l’ai pas encore essayé) fonctionnerait pour permettre à l’utilisateur de poster une réponse avec juste un e-mail. J’apprécierais tous vos commentaires.

Je ne suis pas particulièrement sûr que ce soit la meilleure façon de créer un utilisateur temporaire. Je n’ai trouvé aucune méthode qui crée spécifiquement des utilisateurs temporaires cependant.

class SomePluginController < ApplicationController

  # Assurez-vous qu'il y a un utilisateur temporaire dans la base de données
  def ensure_user

    # Vérifiez si un utilisateur temporaire existe
    user = User.where(staged: true).with_email(params[:email].strip.downcase).first

    # Créez un utilisateur temporaire manuellement
    if !user
      user = User.new
      user.staged = true
      user.email = params[:email]
      user.active = false
      user.save!
    end
    
    user
  end

  # Suivre un sujet en tant qu'utilisateur temporaire
  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

  # Répondre à un sujet en tant qu'utilisateur temporaire
  def staged_reply
 
    user = ensure_user

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

  end

end
3 « J'aime »