Foros del Web » Programando para Internet » PHP »

Restriccion de acceso a contenido

Estas en el tema de Restriccion de acceso a contenido en el foro de PHP en Foros del Web. Buenas foro Tengo una duda sobre el como hacer una restriccion para las acciones del contenido de cada pagina a la que entran. Por ejemplo ...
  #1 (permalink)  
Antiguo 22/02/2013, 14:03
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 9 meses
Puntos: 12
Pregunta Restriccion de acceso a contenido

Buenas foro

Tengo una duda sobre el como hacer una restriccion para las acciones del contenido de cada pagina a la que entran. Por ejemplo si el usuario 5 tiene acceso solo a 3 modulos y a los demas solo los puede ver pero no puede hacer ninguna accion.

Como puedo controlar esas acesos.

Tengo una tabla que guarda el acceso,lectura,escritura,reportes,menuID,usuarioID

Con esta tabla doy los permisos de que pueden hacer y que pueden ver pero en codigo no se m ocurre como hacerlo.

El id de usuario lo guardo en una session para saber que usuario esta logueado pero no se como hacer para saber a que pagina esta entrando

Espero me puedan ayudar.

De antemano muchas gracias...
__________________
Lo imposible solo cuesta un poco mas
  #2 (permalink)  
Antiguo 22/02/2013, 14:26
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 5 meses
Puntos: 43
Respuesta: Restriccion de acceso a contenido

no sé como lo estaras programando, pero deberias crear una funcion que le pases el id del usuario cuando quiera ejecutar alguna de esas acciones y que valide si tiene permiso o no
  #3 (permalink)  
Antiguo 22/02/2013, 14:31
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 9 meses
Puntos: 12
Respuesta: Restriccion de acceso a contenido

gracias por contestar destor.

Si de hecho en eso me trabe realizando la funcion mira eto es lo que llebo.

Código PHP:
Ver original
  1. public function acceso($id_usuario,$id_menu){
  2.             $query="SELECT acceso,privLectura,privEscritura FROM Privilegio WHERE usuarioID=?";
  3.             $stmt=$this->_connection->prepare($query);
  4.             $stmt->bind_param('i',$id_usuario);
  5.             $stmt->execute();
  6.             $accesos= $stmt->fetch_object();
  7.     }

Pero no se como validar la pagina en la que se encuentra el usuario.
__________________
Lo imposible solo cuesta un poco mas
  #4 (permalink)  
Antiguo 22/02/2013, 15:58
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 9 meses
Puntos: 12
Respuesta: Restriccion de acceso a contenido

Bueno al parecer esta solucionado mi problema, pero si se puede mejorar espero sus comentarios:

De esta forma obtengo solo el archivo que esta siendo utilizado:
Código PHP:
Ver original
  1. $nombreArchivo= basename(__FILE__, ".php");
  2. echo $nombreArchivo.".php";

Código PHP:
Ver original
  1. private function retonrnaMenuID($nombreArchivo){
  2.         $query="SELECT menuID FROM menu WHERE archivo=?";
  3.         $stmt=$this->_connection->prepare($query);
  4.         $stmt->bind_param("s",$nombreArchivo);
  5.         $stmt->execute();
  6.         $menuID=$stmt->fetch_object();
  7.         return $menuID;
  8.     }
  9.    
  10.     public function acceso($id_usuario,$id_menu,$nombreArchivo){
  11.             $menuID = $this->retonrnaMenuID($nombreArchivo);
  12.             $query="SELECT privLectura,privEscritura,menuID FROM permiso WHERE usuarioID=? AND menuID=?";
  13.             $stmt=$this->_connection->prepare($query);
  14.             $stmt->bind_param('ii',$id_usuario,$menuID->menuID);   
  15.             $stmt->execute();
  16.             $accesos=$stmt->fetch_object();
  17.             if($accesos->privLectura == 0):
  18.                 $this->setError("ErrorAccesoLectura","No tienes acceso a este contenido. Ponte en contacto con el administrador para habilitar el permiso.");
  19.                 //header("location: pagina_anterior.php");
  20.             else:
  21.                 $this->_priv_lectura = true;
  22.             endif;
  23.            
  24.             if($accesos->privEscritura == 0):
  25.                 $this->setError("ErrorAccesoEscritura","No cuentas con el permiso para hacer modificaciones en este módulo. Ponte en contacto con el administrador para habilitar el permiso.");
  26.                 //header("location: pagina_anterior.php");
  27.             else:
  28.                 $this->_priv_escritura = true;
  29.             endif;
  30.            
  31.             if($accesos->privReportes == 0):
  32.                 $this->setError("ErrorAccesoReporte","No cuentas con el permiso para realizar esta accion. Ponte en contacto con el administrador para habilitar el permiso.");
  33.                 //header("location: pagina_anterior.php");
  34.             else:
  35.                 $this->_privReporte = true;
  36.             endif;
  37.     }

Otra opcion que se me ocurrio fue hacer una consulta con join de permiso a menu y en el where validar el usuario y el nombre del archivo directamente.
__________________
Lo imposible solo cuesta un poco mas

Etiquetas: contenido, restriccion, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:22.