Pareces nuevo por aquí. Si quieres participar, ¡pulsa uno de estos botones!
public function before_filter($controlador, $accion){ /** * El controlador login es el unico que no tiene validacion * $usuarios_id viene de la variable de sesión usuarios_id * creada en el controlador login/valida */ if($controlador!='admin'): $usuarios_id = Session::get_data('usuarios_id'); $u = $this->Usuarios->find_first($usuarios_id); //echo 'TIPO '. $u->tipo; if($u->tipo !='A'){ $objacciones = $this->Acciones->find_first("nombre='$accion'"); $tiene_permiso = $this->Permisos->count("controlador='$controlador' and acciones_id = '$objacciones->id' and usuarios_id = '$usuarios_id'"); // Muestra un mensaje con la accion realizada flash::success('Accion: '.$objacciones->nombre); /** * Si no tiene acceso ejecuta la accion no_acceso en el * controlador login */ if(!$tiene_permiso): $this->route_to('controller: admin', 'action: no_acceso'); return false; else: /** * Revisa si el controlador es StandarForm y * oculta los botones a los que no tiene acceso */ if(is_subclass_of($this, 'StandardForm')): /** *Traemos toda la tabla Acciones */ $objacciones = $this->Acciones->find(); foreach($objacciones as $objaccion): /** * Por cada accion busco el regristo en la tabla permisos */ $objpermiso = $this->Permisos->find_first("controlador='$controlador' and usuarios_id = '$usuarios_id' and acciones_id = '$objaccion->id'"); flash::success($objaccion->nombre.' '.$objpermiso->estado); /** * Si no existe o esta desactivado elimino el boton correspondiente */ if($objpermiso->estado=='D' or !$objpermiso->estado): switch($objaccion->nombre): case 'insert': $this->unable_insert(); break; case 'query': $this->unable_query(); break; case 'browse': $this->unable_browse(); break; case 'update': $this->unable_update(); break; case 'delete': $this->unable_delete(); break; case 'report': $this->unable_report(); break; endswitch; endif; endforeach; endif; endif; echo "error"; } endif; }