Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    problema con before_filter

    Ciao nel mio controller ho aggiunto il seguento filtro
    codice:
    class AssetsController < ApplicationController
            layout 'layout'
            before_filter :is_user_admin
    
      ....
    
    private 
    	def is_user_admin
    		if current_user.id == 1
    			return true
    		else
    			return false
    		end
    	end
    	
    end
    che non sembra sortire nessun effetto dato che riesco sempre a visulizzare le azioni renderizzate dal controller anche se l'id è diverso da 1, di questo ne sono certo perchè lo vedo stampato a monitor.
    Qualcuno sa dirmi dove sbaglio?

    Ho rimosso
    private
    def is_user_admin

    return false

    end
    [/CODE]
    ed ottengo sempre lo stesso risultato, la pagina viene visualizzata.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Non vorrei dire una fesseria ma forse ritornare FALSE non è sufficiente.

    FALSE blocca l'eventuale esecuzione di altri filtri interrompendo la catena ma sei tu poi che devi dire cosa fare, nel qual caso probabilmente un redirect alla pagina di login.

  3. #3
    si grazie, ho messo un redirect ed ora fa quello che deve fare era il primo filtro che mettevo e ho interpretato male il suo uso. Grazie della dritta

  4. #4
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Prego, in effetti anch'io ero rimasto dubbioso proprio perchè non ho ancora grande confidenza con Rails.

    Se ci pensi bene però dire semplicemente di non visualizzare la pagina non ha senso, come dovrebbe comportarsi il Controller in quel caso?

    I filtri, sia per il Model che per il Controller, alla fine credo vadano visti come delle semplici utility per eseguire delle azioni secondarie prima o dopo un'azione principale.

    Sta tuttavia allo sviluppatore decidere compiutamente quali azioni svolgere.

  5. #5
    nel mio caso solo alcuni utenti posso accedere al controller assets, quale sarebbe il modo più elegante per farlo?
    Per adesso ho messo semplicemente un redirect nel filtro...in questo modo quando chiamo /assets non chiamo l azione show ma ridirigo l'utente ad un altro controller.

  6. #6
    Utente di HTML.it L'avatar di deleted_id_48586
    Registrato dal
    Nov 2002
    Messaggi
    1,732
    Beh, penso tu debba semplicemente differenziare le autorizzazioni dei vari utenti distinguendoli tra: Admin, Guest ecc.

    Prova a dare uno sguardo alle gemme ed ai plug-in in rete, di sicuro c'è qualcosa a riguardo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.