2016-07-23 10 views
0

In Devise können wir den Benutzer so einstellen, dass er sich direkt anmeldet, indem er entfernt: registrierbares Symbol Formular Benutzermodell. Aber mein Thema ist es, eigene Benutzer Anmeldeseite und Controller zu erstellen und erlauben Admin Benutzer manuell zu erstellen. Ich habe es viele Male versucht, aber das Problem ist, wie man das Passwort verschlüsselt, so dass es während der Anmeldung von der Software zugänglich wird. Wenn es eine Idee gibt, bitte helfen Sie.Wie schränkt man die Registrierung ein und erstellt eigene Anmeldedaten?

+0

dont remove signup modul – uzaif

+0

Aber ich möchte admin nur Benutzer erstellen, die mit Login nicht möglich ist. Wenn ich eingeloggt bin, wird auf root_path umgeleitet, um zu informieren, dass Sie bereits eingeloggt sind. Gibt es eine Idee? @Uzaif –

Antwort

0

Ich habe dieses Problem zu lösen

  1. Ich löschte nur das: registrierbares Formular Benutzermodell
  2. Dann manuell ein erstellen Benutzercontroller und Formular zum Erstellen von Daten.
  3. Legen Sie dann die erforderliche Validierung im Benutzermodell fest.
  4. Bei der Übermittlung von Daten das Benutzermodell automatisch verschlüsselt und Passwort gespeichert.

Und vielen Dank für die Mühe zu helfen.

1

Hier sind einige Vorschläge und Lösung:

  1. Sie das nicht löschen :regesterable aus User Modell. Definieren Sie stattdessen einfach eine andere Route für die Datei in der Datei routes.rb, damit andere den Pfad zur Registrierung nicht finden können. z.B. devise_for :users, path_names: { sign_up: 'register_not_allowed' }

  2. erstellen Modul wie Admin und dann einen Controller wie UsersController unter diesem Modul definieren. z.B.

    module Admin class UsersController < ApplicationController end end

  3. Im controller erstellen neue, bearbeiten zeigen , , Update Methoden erstellen, wie Sie für jeden Controller tun. Erstellen Sie ein Formular mit Feldern mit email, password, password_confirmation und auch mit den zusätzlichen Feldern, die ein Attribut in User Modell ist. Dann fordern Sie sie in den starken Parametern Ihres admin/users Controllers. Wenn Sie nun einen Benutzer mit diesem Formular erstellen, ist keine Verschlüsselung des Passworts erforderlich.

app/views/admin/users/_form.html.erb

<%= form_for [:admin, @user] do |f| %> <% end %>

Verwandte Themen