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
>
>