Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Que los usuarios no vean otros sitios

Estas en el tema de Que los usuarios no vean otros sitios en el foro de WordPress en Foros del Web. Hola ¿En un multisite cómo puedo hacer para que los usuarios no vean nada de los otros sitios que hay dentro? Se trata de un ...
  #1 (permalink)  
Antiguo 29/01/2015, 12:26
 
Fecha de Ingreso: diciembre-2003
Mensajes: 474
Antigüedad: 20 años, 11 meses
Puntos: 5
Que los usuarios no vean otros sitios

Hola
¿En un multisite cómo puedo hacer para que los usuarios no vean nada de los otros sitios que hay dentro?
Se trata de un multisite que no es accesible al público (es totalmente privado) y necesito que cada usuario que doy de alta sólo pueda ver su sitio. Ahora mismo no pueden operar nada más que en el sitio en el que está dado de alta pero poniendo la url de otros sitios pueden ver lo que hay.

Gracias.
  #2 (permalink)  
Antiguo 29/01/2015, 14:05
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 16 años, 4 meses
Puntos: 56
Respuesta: Que los usuarios no vean otros sitios

pero te refieres a que el usuairo de subdominio1.dominio.es pueden teclear

subdominio2.dominio.es

y ver lo que hay , o a que puede teclear

subdominio2.dominio.es/wp-admin y ver el panel de control?

si es lo segundo , es porque les has hecho usuarios de todos los bogs, no solo del suyo, si es lo primero... pues logicamente si esta online el sitio cualquiera (incluidos los robots de google & cia) que escriba subdominio1.dominio.es o subdominio2.dominio.es o subdominio3.dominio.es ... podrá ver los contenidos.

si quieres que sean totalmente privados tendras que poner el frontpage protegido con contaseña, o bloqueando las ips por htaccess o algo de eso.
__________________
Un saludo! :-)
Quiero ser el primero
  #3 (permalink)  
Antiguo 30/01/2015, 02:33
 
Fecha de Ingreso: diciembre-2003
Mensajes: 474
Antigüedad: 20 años, 11 meses
Puntos: 5
Respuesta: Que los usuarios no vean otros sitios

Muchas gracias por contestar. Se trata del primer caso: Todos los sitios son privados y lo tengo puesto para que no lo rastreen los buscadores pero el problema es que los usuarios pueden ver los otros sitios. Probaré la solución que me comentas.
Gracias de nuevo.

Cita:
Iniciado por darchy Ver Mensaje
pero te refieres a que el usuairo de subdominio1.dominio.es pueden teclear

subdominio2.dominio.es

y ver lo que hay , o a que puede teclear

subdominio2.dominio.es/wp-admin y ver el panel de control?

si es lo segundo , es porque les has hecho usuarios de todos los bogs, no solo del suyo, si es lo primero... pues logicamente si esta online el sitio cualquiera (incluidos los robots de google & cia) que escriba subdominio1.dominio.es o subdominio2.dominio.es o subdominio3.dominio.es ... podrá ver los contenidos.

si quieres que sean totalmente privados tendras que poner el frontpage protegido con contaseña, o bloqueando las ips por htaccess o algo de eso.
  #4 (permalink)  
Antiguo 30/01/2015, 05:46
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Que los usuarios no vean otros sitios

Siento que hay una mejor forma aunque no me doy una idea clara de como implementarla ya que nunca he hecho un sitio asi y no se como lo tengas acomodado.

Ami se me ocurre que antes de cargar el sitio compruebes si el usuario esta logeado, si es asi verificas que sea el dueño/propietario del blog en cuestion, caso contrario envias un mensaje de "Ups! parece que intencas acceder aun lugar prohibido"

esto lo puedes hacer con

Código PHP:
Ver original
  1. function check_user(){
  2. //aqui tu codigo para verificar al usuario
  3. }
  4. add_action('init','check_user',1);

Como dije no me doy una idea como verificarlo, pero con esta funcion puedes validar datos antes de cargar el sitio y si lo requiere muestras un mensaje de advertencia o lo mandas a otro lado.
  #5 (permalink)  
Antiguo 30/01/2015, 06:54
 
Fecha de Ingreso: diciembre-2003
Mensajes: 474
Antigüedad: 20 años, 11 meses
Puntos: 5
Respuesta: Que los usuarios no vean otros sitios

Cita:
Iniciado por ArturoGallegos Ver Mensaje
Siento que hay una mejor forma aunque no me doy una idea clara de como implementarla ya que nunca he hecho un sitio asi y no se como lo tengas acomodado.

Ami se me ocurre que antes de cargar el sitio compruebes si el usuario esta logeado, si es asi verificas que sea el dueño/propietario del blog en cuestion, caso contrario envias un mensaje de "Ups! parece que intencas acceder aun lugar prohibido"

esto lo puedes hacer con

Código PHP:
Ver original
  1. function check_user(){
  2. //aqui tu codigo para verificar al usuario
  3. }
  4. add_action('init','check_user',1);

Como dije no me doy una idea como verificarlo, pero con esta funcion puedes validar datos antes de cargar el sitio y si lo requiere muestras un mensaje de advertencia o lo mandas a otro lado.
Me gusta tu idea.
Lo que me has mandado creo que podría valer para discriminar por rol y sitio ¿Verdad? Por aclarar tu duda, lo que necesito es que un autor de mimultisitio.com/subsitio1 no pueda ver ni entrar en mimultisitio.com/subsitio2
Muchas gracias.
  #6 (permalink)  
Antiguo 30/01/2015, 07:31
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: Que los usuarios no vean otros sitios

Así es, básicamente la idea es comparar algún ID de usuario, nick, roll o cualquier cosa que te permita diferenciar a quien pertenece para dar o no el acceso.

Yo no estoy muy familiarizado con el multisite por ende no conozco detalladamente como podrías identificarlo pero seguro se te ocurrirá algo.
  #7 (permalink)  
Antiguo 30/01/2015, 12:01
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
Respuesta: Que los usuarios no vean otros sitios

Algo así puede ayudarte.

Código PHP:
Ver original
  1. function check_my_user(){
  2.     global $current_user;
  3.     get_currentuserinfo();
  4.  
  5.     if( is_user_logged_in() ){
  6.  
  7.         if( is_user_member_of_blog( $current_user->ID ) ){
  8.  
  9.             //Es miembro del sitio actual
  10.  
  11.         }else{
  12.  
  13.             //No es miembro del sitio actual
  14.             //enviar a otro lado.
  15.  
  16.         }
  17.  
  18.     }else{
  19.  
  20.         //No esta logueado
  21.         //redirect a otro lado.
  22.  
  23.     }
  24. }
  25.  
  26. add_action('init', 'check_my_user');
  #8 (permalink)  
Antiguo 01/02/2015, 06:12
 
Fecha de Ingreso: diciembre-2003
Mensajes: 474
Antigüedad: 20 años, 11 meses
Puntos: 5
Respuesta: Que los usuarios no vean otros sitios

Gracias. Es lo que necesito pero lo he puesto en el header de cada tema en todos los sitios de mi multisite y no me saca ningún mensaje...

Código PHP:
Ver original
  1. function check_my_user(){
  2.     global $current_user;
  3.     get_currentuserinfo();
  4.  
  5.     if( is_user_logged_in() ){
  6.  
  7.         if( is_user_member_of_blog( $current_user->ID ) ){
  8.  
  9.             echo "OK";//Es miembro del sitio actual
  10.  
  11.         }else{
  12.  
  13.            echo "NO TIENE PERMISO PARA ACCEDER A ESTE SITIO"; //No es miembro del sitio actual
  14.             //enviar a otro lado.
  15.  
  16.         }
  17.  
  18.     }else{
  19.  
  20.         echo "NO ESTÁ LOGEADO";
  21.  
  22.     }
  23. }
  24.  
  25. add_action('init', 'check_my_user');

Sigo probando a ponerlo en otro sitio.
  #9 (permalink)  
Antiguo 01/02/2015, 08:59
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 16 años, 4 meses
Puntos: 56
Respuesta: Que los usuarios no vean otros sitios

ponlo en functions
__________________
Un saludo! :-)
Quiero ser el primero
  #10 (permalink)  
Antiguo 01/02/2015, 12:19
 
Fecha de Ingreso: diciembre-2003
Mensajes: 474
Antigüedad: 20 años, 11 meses
Puntos: 5
Respuesta: Que los usuarios no vean otros sitios

Gracias a todos.
Finalmente lo he conseguido con este código:
Código PHP:
////REDIRECCIÓN SI NO ERES USUARIO DEL SITIO
    
global $current_user;
    
get_currentuserinfo();

    if ( 
is_user_member_of_blog$current_user->ID ) ) {
       
    } else {
wp_logout();
$redirect_to esc_urlnetwork_site_url'wp-login.php?action=invalid_username''invalid_username' ) );
wp_safe_redirect$redirect_to );
break;
    } 
Ahora tendré que hacer que se inserte automáticamente en todos los temas... quizás con un plugin???
  #11 (permalink)  
Antiguo 02/02/2015, 10:44
Avatar de TMeister
Crazy Coder
 
Fecha de Ingreso: enero-2002
Ubicación: En la Oficina
Mensajes: 2.880
Antigüedad: 22 años, 10 meses
Puntos: 193
Respuesta: Que los usuarios no vean otros sitios

En ese caso debes usar un MU Plugin (Must Use Plugin) http://codex.wordpress.org/Must_Use_Plugins este tipo de plugin se ejecutan automaticamente en la instalacion de WordPress y no es visible en la interface del administrador para que pueda desactivarlo/borrarlo.

Asi mismo, si es una instalacion MultiSite se ejecuta en cada blog existente y nuevos.
  #12 (permalink)  
Antiguo 03/02/2015, 04:40
 
Fecha de Ingreso: diciembre-2003
Mensajes: 474
Antigüedad: 20 años, 11 meses
Puntos: 5
Respuesta: Que los usuarios no vean otros sitios

Cita:
Iniciado por TMeister Ver Mensaje
En ese caso debes usar un MU Plugin (Must Use Plugin) http://codex.wordpress.org/Must_Use_Plugins este tipo de plugin se ejecutan automaticamente en la instalacion de WordPress y no es visible en la interface del administrador para que pueda desactivarlo/borrarlo.

Asi mismo, si es una instalacion MultiSite se ejecuta en cada blog existente y nuevos.
Muchas gracias, lo pruebo porque tiene buena pinta.

Etiquetas: usuarios
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 16:56.