Como crear un MENU con permisos ???

878 views
Skip to first unread message

NiGGa!!!

unread,
Dec 7, 2009, 10:29:35 AM12/7/09
to CakePHP en Español
Estimados, necesito crear ciertas vistas que tengan un menu horizontal
en la parte superior de la pagina web, pero este menu debe ser con
permisos, osea, que cada usuario del sistema pueda ver ciertas
opciones del menu y el administrador pueda verlas todas.

Alguien me puede ayudar y dar algun ejemplo para poder hacer esto, de
antemano le agradezco a todos su ayuda.

Gracias y Saludos.

Fran Iglesias

unread,
Dec 7, 2009, 10:32:33 AM12/7/09
to cakep...@googlegroups.com
Una idea un poco bruta así a bote pronto es que hagas un menú para
cada tipo de usuario, como un element, y los nombras adecuadamente.

Luego, cuando tengas que mostrarlo, llamas al element correspondiente
al tipo de usuario que tengas conectado.

Hay sistemas algo más inteligentes que interpretan los permisos para
saber qué acciones de un menú mostrar, etc, pero como primera
aproximación te puede valer la otra.

---
Fran Iglesias <cakep...@gmail.com>
http://cakephpilia.blogspot.com

Christopher Castro

unread,
Dec 7, 2009, 11:17:51 AM12/7/09
to cakep...@googlegroups.com
Pues yo me crearía alguna función en un helper, por ejemplo: show_menu_button(PARAMETROS:array):boolean, entonces en la vista del menu pondrias algo como:

<?php if ( $nombre_helper->show_menu_button(PARAMETROS:array) ) { ?><li><a href="">BOTON 1</a></li><?php } ?>

Donde PARAMETROS podría ser por ejemplo la sessión del usuario.

Sergio Silva

unread,
Dec 7, 2009, 12:19:13 PM12/7/09
to cakep...@googlegroups.com
Yo lo que he hecho alguna vez es guardar en sesión los premisos o limitaciones del usuario cuando se loguea al sistema, y un "securityHelper" se encarga se comprobar mirando la sesión qué puede ser mostrado y qué no.

Saludos

Arantxa

unread,
Dec 8, 2009, 4:55:01 AM12/8/09
to CakePHP en Español
Hola,
yo lo tengo implementado en base a la siguiente estructura de tabla:

CREATE TABLE IF NOT EXISTS menus (
id int(11) NOT NULL auto_increment,
parent_id int(11),
lft int(11) NOT NULL,
rght int(11) NOT NULL,
nombre varchar(255) not null,
enlace varchar(255) NOT NULL,
rol_id int(11) NOT NULL,
PRIMARY KEY (id),
KEY parent_id (parent_id),
KEY rol_id (rol_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

Donde rol_id apunta a la tabla d roles de usuarios, y parent_id apunta
a otra fila del menu.
De esta manera se mostrará el menú dependiendo del rol del usuario. Lo
malo, es q para una misma acción, tengo q crear tantas entradas como
roles tengan permiso sobre ella, es un poco pesado, pero solo lo tengo
q hacer una vez.
Si quieres hacerlo mejor, enganchandolo con usuario directamente,
tendrías que crear una tabla intermedia... o un HABTM entre usuarios y
menus, o entre roles y menus. Esto sería lo mejor, pero por falta de
tiempo no lo hice así
Espero q te sirva.

On Dec 7, 6:19 pm, Sergio Silva <ssil...@gmail.com> wrote:
> Yo lo que he hecho alguna vez es guardar en sesión los premisos o
> limitaciones del usuario cuando se loguea al sistema, y un "securityHelper"
> se encarga se comprobar mirando la sesión qué puede ser mostrado y qué no.
>
> Saludos
>
> El 7 de diciembre de 2009 17:17, Christopher Castro <y2k2...@gmail.com>escribió:
>
> > Pues yo me crearía alguna función en un helper, por ejemplo: *
> > show_menu_button(PARAMETROS:array):boolean*, entonces en la vista del menu
> > pondrias algo como:
>
> > <?php if ( $nombre_helper->show_menu_button(PARAMETROS:array) ) { ?><li><a
> > href="">BOTON 1</a></li><?php } ?>
>
> > Donde PARAMETROS podría ser por ejemplo la sessión del usuario.
>
> > El 7 de diciembre de 2009 16:32, Fran Iglesias <cakephpi...@gmail.com>escribió:
>
> >> Una idea un poco bruta así a bote pronto es que hagas un menú para
> >> cada tipo de usuario, como un element, y los nombras adecuadamente.
>
> >> Luego, cuando tengas que mostrarlo, llamas al element correspondiente
> >> al tipo de usuario que tengas conectado.
>
> >> Hay sistemas algo más inteligentes que interpretan los permisos para
> >> saber qué acciones de un menú mostrar, etc, pero como primera
> >> aproximación te puede valer la otra.
>
> >> El 07/12/2009, a las 16:29, NiGGa!!! escribió:
>
> >> > Estimados, necesito crear ciertas vistas que tengan un menu horizontal
> >> > en la parte superior de la pagina web, pero este menu debe ser con
> >> > permisos, osea, que cada usuario del sistema pueda ver ciertas
> >> > opciones del menu y el administrador pueda verlas todas.
>
> >> > Alguien me puede ayudar y dar algun ejemplo para poder hacer esto, de
> >> > antemano le agradezco a todos su ayuda.
>
> >> ---
> >> Fran Iglesias <cakephpi...@gmail.com>
> >>http://cakephpilia.blogspot.com
>
>

Hector Tapia

unread,
Dec 9, 2009, 8:34:45 AM12/9/09
to cakep...@googlegroups.com
Muchas Gracias por todos sus aportes amigos, pero alguien tiene alguna solucion mas siple por favor.
 
Gracias.
 

Sergio Silva

unread,
Dec 9, 2009, 8:38:01 AM12/9/09
to cakep...@googlegroups.com
Pues más fácil de lo que propone Fran...

Hector Tapia

unread,
Dec 9, 2009, 9:25:38 AM12/9/09
to cakep...@googlegroups.com
Ok estimados, voy a probar como me va, y posteo el resultado de todo. Desde ya muchas gracias a todos por sus comentarios.
 
Gracias.
 
Reply all
Reply to author
Forward
0 new messages