Sto ignorando il controller di sessione Devise per modificare il comportamento di accesso dell'utente. Nel mio caso ho due tipi di utente: utente principale e utente secondario. L'utente secondario può accedere solo se l'utente principale imposta l'accesso di accesso vero per l'utente secondario. Qui è il mio modello di utenteSovrascrittura controller sessione sessione
class User < ActiveRecord::Base
has_many :child_users, :class_name => "User",:foreign_key => "parent_id", :dependent => :destroy
belongs_to :parent, :class_name => "User"
end
Qui è il mio controller sessione
class SessionsController < Devise::SessionsController
def create
logger.info "Attempt to sign in by #{ params[:user][:email] }"
@user = User.find_by_email(params[:user][:email])
if @user != nil
if [email protected]_portal_access?
flash[:notice] = "#{ @user.email } do not have portal access."
redirect_to :controller => 'welcome'
else
super
end
end
end
def destroy
logger.info "#{ current_user.email } signed out"
super
end
end
Con codice corrente quando faccio il login con le credenziali corrette - se si tratta di utente principale. accesso utente riuscito. - se è un utente secondario con accesso al portale. login utente sub con successo. - se è un utente secondario con accesso non al portale. utente reindirizza alla pagina di benvenuto dicendo "non ha accesso al portale" e chiedi all'utente di accedere.
problema che sto avendo è: Se provo a effettuare il login con le credenziali che non esistono nel database, allora ottengo l'errore che dice "
Template is missing
Missing template users/sessions/create, sessions/create, devise/sessions/create, devise/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :arb, :coffee]}. Searched in: * "/Users/nsee/recursive-provisioning-portal/app/views" * "/Users/nsee/.rvm/gems/ruby-1.9.3-p392/gems/twitter-bootstrap-rails-2.2.6/app/views" * "/Users/nsee/.rvm/gems/ruby-1.9.3-p392/gems/activeadmin-0.5.1/app/views" * "/Users/nsee/.rvm/gems/ruby-1.9.3-p392/gems/kaminari-0.14.1/app/views" * "/Users/nsee/.rvm/gems/ruby-1.9.3-p392/gems/devise-2.2.4/app/views"
Avete spostato le sessioni di visualizzazione delle cartelle di disposizione testamentaria nella cartella corretta visione? Inoltre, può aiutare se potessimo vedere i tuoi percorsi. Hai dato un'occhiata a questo? [Getting-started/configurazione-controllori] (http://devise.plataformatec.com.br/#getting-started/configuring-controllers) – Stephen