[RUBY] Mettre en œuvre le BAN du compte Rails

Mettre en œuvre la déconnexion forcée

Même sur twitter et instagram, mon compte est interdit et je n'arrive pas à me connecter ... J'espère que je n'ai pas cette expérience, Cette fois, je voudrais implémenter une telle fonction.

Tout d'abord, préparez un modèle utilisateur avec l'attribut suspendu (booléen) en tant qu'utilisateur. Les utilisateurs avec cet indicateur d'arrêt true ne peuvent pas se connecter et Nous allons créer une fonction qui refuse l'accès à d'autres pages et vous oblige à vous déconnecter.

Tout d'abord, implémentez une méthode pour voir si le modèle utilisateur a un indicateur d'arrêt. Il semble que vous n'ayez pas à vous soucier de le préparer en tant que méthode, mais considérez l'extensibilité et créez une méthode comme modèle.

app/models/user.rb


class User < ApplicationRecord


#réduction

#Êtes-vous un utilisateur actif?
private
  def active?
    !suspended?
  end
end

Modifiez maintenant la classe du contrôleur de base. Si l'utilisateur est connecté et que l'indicateur d'arrêt est défini J'ai supprimé la session et redirigé de force vers la première page.

app/controllers/user/base.rb


class User::Base < ApplicationController
  before_action :check_account
  
  private
    def current_user
      if session[:user_id]
        @current_user ||= User.find_by(id: session[:user_id])
      end
    end

  private
    def check_account
      #Lorsque l'utilisateur est connecté et que l'indicateur d'arrêt est défini
      if current_user && !current_user.active?
        #Supprimer la session
        session.delete(:user_id)
        flash.alert = "Le compte est devenu invalide"
        #Rediriger vers la première page
        redirect_to :user_root
      end
    end
end

En appelant la méthode check_account avec before_action pour toutes les actions Vous pouvez forcer la déconnexion d'un utilisateur avec un indicateur d'arrêt.

C'est tout pour aujourd'hui. Merci d'avoir lu jusqu'au bout.

Recommended Posts

Mettre en œuvre le BAN du compte Rails
Implémenter la pagination des rails
[Rails] Mettre en œuvre la tâche de râteau
Markdown implémenté dans Rails
Implémenter la fonction d'application dans Rails
[Rails] Implémenter la fonction de recherche d'utilisateurs
Implémenter l'authentification LTI dans Rails
[Rails] Comment mettre en œuvre le scraping
[Rails] Implémenter la fonction de publication d'images
Implémenter une fonction de connexion simple dans Rails
Implémenter un formulaire de contact dans Rails
[Rails] Comment mettre en œuvre le classement par étoiles
Implémenter la fonction de téléchargement CSV dans Rails
Comment implémenter la fonctionnalité de recherche dans Rails
Comment implémenter la fonctionnalité de classement dans Rails
[Rails] Implémenter le classement par étoiles (entrée, sauvegarde, affichage)
Pour implémenter la publication d'images à l'aide de rails
Implémenter des transitions de boutons à l'aide de link_to dans Rails
11.2 Envoyer un e-mail d'activation de compte: Notes du didacticiel Rails - Chapitre 11