Resgatar o controller acessado dentro do app_controller, como?

3 views
Skip to first unread message

hostdesigner

unread,
Sep 25, 2007, 7:59:37 AM9/25/07
to Cake PHP Português
Como eu faço pra resgatar o controller que está sendo acessado
atualmente dentro do app_controller?

class AppController extends Controller
{

function check_controller()
{

// Check if user try access admin area
if( ( $this->session_data( 'tipo' ) == 0 ) )//&&
( isset( $params['admin'] ) ) )
{
// Bye bye user small expert
//$this->redirect( '/'. $params['controller'] );
$this->set( 'teste', "Redirecionou: ". $this-
>session_data( 'tipo' ) ."!". $dataParams['admin'] );

}else{
$this->set( 'teste', "Retornou: ". $this-
>session_data( 'tipo' ) ."!" );
}

}

}

Desta forma não funciona. Alguém tem alguma sugestão?

Falopa!

hostdesigner

unread,
Sep 25, 2007, 8:06:34 AM9/25/07
to Cake PHP Português
OBS.: Fazer isso sem usar $_SERVER

Falopa!

Pisinho

unread,
Sep 25, 2007, 8:42:21 AM9/25/07
to cake-...@googlegroups.com
Bom dia,
alguem conhece uma apostila ou um tutorial que nao seja postado sobe bakery
o cakephp.org
que fala como usar ACL & ARO em CAke ?

Abraco.

Sauro

Juscélio Dutra de Sousa

unread,
Sep 25, 2007, 9:15:34 AM9/25/07
to cake-...@googlegroups.com
Bom dia,
 
No AppControle eu nunca coloquei um controle, eu coloco uma função e uso dessa forma:
 
 
//APPCONTROLLER
class AppController extends Controller
{

               function check()

               {

                       // Check if user try access admin area
                       if( ( $this->session_data( 'tipo' ) == 0 ) )//&&
( isset( $params['admin'] ) ) )
                       {
                               // Bye bye user small expert
                               //$this->redirect( '/'. $params['controller'] );
                               $this->set( 'teste', "Redirecionou: ". $this-
>session_data( 'tipo' ) ."!". $dataParams['admin'] );

                       }else{
                               $this->set( 'teste', "Retornou: ". $this-
>session_data( 'tipo' ) ."!" );
                       }

               }

}
 

//CONTROLLER QUALQUER
Nas funções que vc for usar a função check vc coloca dessa forma:
 
 
$this->check();
 
 
 
 
 
Em 25/09/07, hostdesigner <sup...@obaratoeaqui.com> escreveu:

OBS.: Fazer isso sem usar $_SERVER

Falopa!


hostdesigner

unread,
Sep 25, 2007, 9:56:18 AM9/25/07
to Cake PHP Português
@ Juscelio
Não sei se me entendeu, mas, o que você postou foi simplesmente a
mesma coisa que eu fiz no meu exemplo a diferença foi que você mudou o
nome do método.

De qualquer forma o que quero é utilizar o app_controller para saber
qual controler o usuário esta visitando agora por exemplo neste
momento eu visito

vibemidia.com/admin/posts/adicionar

mas, meu nível de acesso não me permite acessar isso então o
app_controller vai me redirecionar para

vibemidia.com/posts/adicionar

Entendeu? eu preciso saber se o usuário está acessando alguma area
"admin".

Falopa!

Juscélio Dutra de Sousa

unread,
Sep 25, 2007, 10:44:25 AM9/25/07
to cake-...@googlegroups.com
Cara não sei se entendi bem o que vc quer,
olha só, utilizei uma vez uma função da forma que vc está tentando utilizar.
Por exemplo:
A função function check() serve para verificar se o usuario tem acesso admin e é escrita no arquivo AppController
Quando a classe AppController é extendida o novo controle vai herdar a função check então nas funções da classe vc vai poder usar a função sem problema, é só usar a função assim:
 
class PostController extends AppController
{
        function Adicionar(){
             $this->check();    //usa a função herdada fazendo o redirecionamento se não tiver permissão
             if (!empty($this->data)){
               if ($this->Post->save($this->data)){
                    $this->flash('O Post foi Salvo com sucesso.','/Post');
                  }
             }
        }
}


Espero que seja assim, pro meu problema funcionou....
 
Até mais.
 
 
 
Em 25/09/07, hostdesigner <sup...@obaratoeaqui.com> escreveu:



--
Att.
        Juscélio Dutra de Sousa
        celinh...@gmail.com
         celio...@yahoo.com.br

hostdesigner

unread,
Sep 25, 2007, 11:28:57 AM9/25/07
to Cake PHP Português
@ Juscelio

Entendo o que você disse e é por isso que estou dizendo que não é essa
a minha dúvida/problema.

O que eu quero saber é COMO RESGATAR o controler que o cara acessou?

Por exemplo, utilizando o mesmo exemplo de anteriormente...

O cara acessa
vibemidia.com/posts/adicionar

Eu quero pegar o nome do controler ou seja neste caso eu preciso pegar
o "posts"

o cara acessa
vibemidia.com/admin/posts/adicionar

Eu quero pegar/resgatar o "admin/posts"...

Eu sei que eu resgato isso utilizando a variável $params, porém ela
não fica disponível no app_controller, e essa a minha dúvida

"como resgatar o controller dentro do app_controller?"


Falopa"


byBartus

unread,
Sep 27, 2007, 1:00:45 PM9/27/07
to Cake PHP Português

$this->params['controller'];

seria isso?

hostdesigner

unread,
Sep 28, 2007, 3:02:56 PM9/28/07
to Cake PHP Português
@ ByBarbus
Nem me passou pela cabeça fazer isso... que vacilo o meu...

Falopa!

Lucas Vasconcelos

unread,
Sep 25, 2007, 10:19:52 AM9/25/07
to cake-...@googlegroups.com

Veja http://www.ibm.com/developerworks/edu/os-dw-os-php-cake2.html

É necessário ter cadastro no site (o cadastro é free).

[]'s


--
http://lucasvasconcelos.com

Reply all
Reply to author
Forward
0 new messages