La comunità italiana su CakePHP

You are not logged in. Please login or register.


Pages: 1

Atom RSS

Posts [ 5 ]

ToX

Topic: Redirect in un component

stavo imlementando un sistema di controllo degli accessi, ho lasciato perdere le ACL perchè troppo complesse per quello che devo gestire, e ho deciso di utilizzare qualcosa di mio.

funziona tutto bene (Vabè sono ancora mooolto in alto mare per una gestione vera dei permessi con utenti gruppi e quant'altro), però mi trovavo ad avere questa funzione

if ($this->requestAction('users/checkPermissions') != true)
{
    $this->redirect('/users/login');
    exit();
}

sparpagliata diverse volte nei miei controller... cosa brutta. ho pensato quindi di metterla in un component apposito, e di richiamarla semplicemente quando mi serviva:

$this->Authentication->checkuser();

ho messo il component Authentication nell'app_controller, riesco a richiamarlo correttamente e tutto quanto... il problema è che mi da questo errore:

Fatal error: Call to undefined method AuthenticationComponent::redirect() in C:\Programmi\EasyPHP 2.0b1\www\cakephp\mkk_cms\app\controllers\components\authentication.php on line 8

non capisco il motivo... $this->redirect non funziona all'interno di un component?

questo è il componente completo:

<?php
class AuthenticationComponent extends Object
{
    function checkuser()
    {
        if ($this->requestAction('users/checkPermissions') != true)
        {
            $this->redirect('/users/login');
            exit();
        }
    }
}
?>

Last edited by ToX (28-02-2008 11:24:28)

Saiborg

Re: Redirect in un component

ToX wrote:

Fatal error: Call to undefined method AuthenticationComponent::redirect() in C:\Programmi\EasyPHP 2.0b1\www\cakephp\mkk_cms\app\controllers\components\authentication.php on line 8

non capisco il motivo... $this->redirect non funziona all'interno di un component?

redirect non è un metodo della classe Component.
$this dentro al Component si riferisce all'istanza del Component stesso, mentre tu vuoi utilizzare un metodo di Controller.
Ti puoi salvare un riferimento al Controller corrente definendo il metodo startUp nel tuo componente.

ToX

Re: Redirect in un component

cazz è più complesso di quanto pensassi... comunque ho risolto mettendo direttamente la funzione nell'app_controller, e richiamandola ancora più semplicemente con $this->checkuser() smile

zuck

Re: Redirect in un component

Sono d'accordo con te sul fatto di lasciar perdere le ACL se il progetto non richiede gestione avanzata dei permessi, tuttavia un pensierino all'AuthComponent integrato in Cake ce lo farei piuttosto di un'implementazione personale che potenzialmente potrebbe avere molti più bugs... wink

Anch'io ero partito creandomi il mio componente per l'autenticazione ma alla fine forse conviene maggiormente impratichirsi con i componenti built-in e padroneggiarli al meglio smile

ToX

Re: Redirect in un component

l'auth component lo conosco pochissimo a dire il vero e non so bene cosa faccia, quello che mi serve è una struttura piuttosto semplice gruppo - utente - permessi, visti i tempi strettissimi di consegna ho ridimensionato le pretese del cliente e siamo arrivati a questo compromesso big_smile
più che altro quello che mi perplime è che i gruppi dovranno avere i permessi basati su una struttura di pagine gestita ad albero, cioè avere i permessi solo da un certo ramo in giù... ho paura che non sia semplicissimo adattare un componente, spero di sbagliarmi...

hai qualche documento che spiega bene l'auth component? ho provato a guardare in panetteria ma ci sono milioni di componenti neutral

Posts [ 5 ]

Guest posting is disabled. You must login or register to post a reply.

Pages: 1

Topic info

1 guests and 0 users are reading this topic now


Forum quick jump menu

Currently used extensions: pun_topic_online_users, pun_karma, pun_admin_hook_navigator, pun_bbcode. Copyright © 2008 PunBB

[ Generated in 0.115 seconds, 10 queries executed ]