Selbst auf Twitter und Instagram ist mein Konto gesperrt und ich kann mich nicht anmelden ... Ich hoffe ich habe diese Erfahrung nicht, Dieses Mal möchte ich eine solche Funktion implementieren.
Bereiten Sie zunächst ein Benutzermodell mit dem Attribut suspendiert (boolean) als Benutzer vor. Benutzer mit diesem Stopp-Flag true können sich nicht anmelden und Wir erstellen eine Funktion, die den Zugriff auf andere Seiten verweigert und Sie zum Abmelden zwingt.
Implementieren Sie zunächst eine Methode, um festzustellen, ob das Benutzermodell über ein Stoppflag verfügt. Es scheint, dass Sie sich nicht die Mühe machen müssen, es als Methode vorzubereiten, sondern die Erweiterbarkeit in Betracht ziehen und eine Methode als Modell erstellen müssen.
app/models/user.rb
class User < ApplicationRecord
#Kürzung
#Sind Sie ein aktiver Benutzer?
private
def active?
!suspended?
end
end
Ändern Sie nun die Basis-Controller-Klasse. Wenn der Benutzer angemeldet ist und das Stopp-Flag gesetzt ist Ich habe die Sitzung gelöscht und zwangsweise auf die oberste Seite umgeleitet.
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
#Wenn der Benutzer angemeldet ist und das Stopp-Flag gesetzt ist
if current_user && !current_user.active?
#Sitzung löschen
session.delete(:user_id)
flash.alert = "Konto ist ungültig geworden"
#Zur obersten Seite umleiten
redirect_to :user_root
end
end
end
Durch Aufrufen der Methode check_account mit before_action für alle Aktionen Sie können eine Abmeldung für einen Benutzer mit einem Stopp-Flag erzwingen.
Das ist alles für heute. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts