ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙkonektatu(); if ($konexiook == true) { // No se limpian USUARIO ($erabili) y CONTRASEA ($pasa) porque van con 'PREPARE' $daturikbai = $db->validar_usuario($erabili,$pasa,$sitea); if ($daturikbai != false) $this->usuario_lista = $daturikbai; } $db->deskonektatu(); unset($db); if (($konexiook == true) && (count($this->usuario_lista) == 1)) { $konektatuda = 1; } return $konektatuda; } // Recoger la CONEXIN en la BD public function konexioa_jaso($usuario,$ip,$giltza) { $jasoda = 0; $kode = new Codigo(); $db = new Datubasea(); // FECHA $data = new Fecha(); $data->sacarfecha(); $urte = $data->urte; $hila = $data->hila; $egun = $data->egun; $ordua = $data->ordua; unset($data); $taula = "usuario_conex"; $eremuak = "conex_usuario,conex_ip,conex_egun,conex_hila,conex_urte,conex_ordua,conex_giltza"; $balioak = array($usuario,$ip,$egun,$hila,$urte,$ordua,$giltza); $db->konektatu(); $db->insert($taula,$eremuak,$balioak); $db->deskonektatu(); $jasoda = 1; unset($db); unset($kode); return $jasoda; } // Valida una SESIN DE USUARIO generando la LLAVE y comparndola con la de la BD public function sesion_valida($usuario='',$hora='',$neregiltza='') { $balidoda = false; $la_llave = $usuario.$hora.$neregiltza; // Problemas de HASH con , reemplazamos por n y generamos HASH $la_llave = str_replace("","n",$la_llave); $la_llave = hash('sha256',$la_llave); // CONECTAR $konexiook = false; $datuak = false; $db = new Datubasea(); $konexiook = $db->konektatu(); if ($konexiook == true) { // Realizar CONSULTA sobre USUARIO $kontsulta = "SELECT conex_giltza FROM usuario_conex WHERE conex_usuario = ? ORDER BY conex_ID DESC"; $balioak = array($usuario); $datuak = $db->select($kontsulta,$balioak); if ($datuak[0]['conex_giltza'] == $la_llave) $balidoda = true; } $db->deskonektatu(); unset($db); return $balidoda; } // Devolver la lista de USUARIOS public function erabiltzaile_lista_lortu($zebaldintza='',$baloreak) { // Realizar CONSULTA $taula = 'usuario'; $eremuak = "usuario_ID,usuario_egoera,usuario_socio,usuario_nombre,usuario_apellidos,usuario_nick,usuario_pasahitz,usuario_perfil,usuario_moderadorsite,usuario_notificacion,usuario_descripcion,usuario_eposta,usuario_irudia,usuario_dimx,usuario_dimy,concat_ws(' ',usuario_nombre,usuario_apellidos) AS usuario_nombrecompleto"; $kontsulta = "SELECT DISTINCT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $erabiltzaileak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); return $erabiltzaileak; } // Devolver lista de USUARIOS y GRUPOS relacionados public function talderabiltzaile_lista_lortu($zebaldintza='',$baloreak) { // Realizar CONSULTA $taula = 'usuario, usuario_grupo'; $eremuak = 'usuario.usuario_ID,usuario.usuario_egoera,usuario.usuario_nombre,usuario.usuario_apellidos,usuario.usuario_nick,usuario.usuario_pasahitz,usuario.usuario_perfil,usuario.usuario_moderadorsite,usuario.usuario_notificacion,usuario.usuario_descripcion,usuario.usuario_eposta,usuario.usuario_irudia,usuario.usuario_dimx,usuario.usuario_dimy'; $kontsulta = "SELECT DISTINCT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $erabiltzaileak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); return $erabiltzaileak; } // Devolver lista de GRUPOS y USUARIO relacionados public function erabiltzailetalde_lista_lortu($zebaldintza='',$baloreak) { // Realizar CONSULTA $taula = 'grupo, usuario_grupo'; $eremuak = 'grupo.grupo_ID,grupo.grupo_titulo,grupo.grupo_orden,usuario_grupo.usuario_grupo_ID'; $kontsulta = "SELECT DISTINCT ". $eremuak . " FROM " . $taula; if ($zebaldintza != '') { $kontsulta = $kontsulta . " " . $zebaldintza; } $db = new Datubasea(); $db->konektatu(); $taldeak = $db->select($kontsulta,$baloreak); $db->deskonektatu(); unset($db); return $taldeak; } // Dado un ID devolver los DATOS DE USUARIO public function erabiltzailea_lortu($erabili_id='') { $usuarioa = 0; // Realizar CONSULTA $kontsulta = "SELECT usuario_ID,usuario_egoera,usuario_socio,usuario_nombre,usuario_apellidos,usuario_perfil,usuario_moderadorsite,usuario_notificacion,usuario_nick,usuario_pasahitz,usuario_descripcion,usuario_eposta,usuario_irudia,usuario_dimx,usuario_dimy FROM usuario WHERE usuario_ID = ?"; $balioak = array($erabili_id); $db = new Datubasea(); $db->konektatu(); $this->usuario_lista = $db->select($kontsulta,$balioak); $db->deskonektatu(); unset($db); if (count($this->usuario_lista) == 1) { $usuarioa = 1; } return $usuarioa; } // Recoger la VISITA de un USUARIO public function bisita_jaso($site = '',$usuario = '',$url = '',$idioma = '') { $jasoda = 0; $kode = new Codigo(); $db = new Datubasea(); // FECHA $data = new Fecha(); $data->sacarfecha(); $urte = $data->urte; $hila = $data->hila; $egun = $data->egun; $ordua = $data->ordua; unset($data); // IP $ip = $this->IPusuario(); // SITE $el_site = 0; if ($site != '') $el_site = $site; // USUARIO $el_usuario = '000000'; if ($usuario != '') $el_usuario = $usuario; // URL $la_url = 'no_url'; if ($url != '') $la_url = $url; // IDIOMA $el_idioma = 1; if ($idioma != '') $el_idioma = $idioma; $taula = "visitas"; $eremuak = "visita_site,visita_usuario,visita_ip,visita_egun,visita_hila,visita_urte,visita_ordua,visita_url,visita_idioma"; $balioak = array($el_site,$el_usuario,$ip,$egun,$hila,$urte,$ordua,$la_url,$el_idioma); $db->konektatu(); //DESACTIVADO JUNIO 2023, REACTIVADO JULIO 2024 $db->insert($taula,$eremuak,$balioak); $db->deskonektatu(); $jasoda = 1; unset($db); unset($kode); return $jasoda; } // Dado el ID de un USUARIO comprobar si es MODERADOR-GRUPO (relacionado con un SITE) y de cual (de qu GRUPO) public function comprobar_moderador_grupo($erabili_id='') { $esmoderadorgrupo = array(); // Sacar GRUPOS (IDs) en los que el USUARIO es MODERADOR $aux = new Auxiliar(); $zebaldintza = " WHERE (grupo_ID IN (SELECT grupo FROM grupo_site WHERE grupo IN (SELECT grupo FROM usuario_grupo WHERE usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4)))))"; $balioak = array($erabili_id); $zebaldintza = $zebaldintza . " ORDER BY grupo_orden"; $taldeak = $aux->grupo_lista($zebaldintza,$balioak); $totalgrupos = count($taldeak); // Si es MODERADOR de algn GRUPO (al menos 1) if ($totalgrupos > 0) { foreach ($taldeak as $eltalde) { // Por cada GRUPO del que es MODERADOR $grupos = array(); $grupos['id'] = $eltalde['grupo_ID']; $grupos['nombre'] = strtoupper($eltalde['grupo_titulo']); array_push($esmoderadorgrupo,$grupos); } } unset($aux); return $esmoderadorgrupo; } // Dado el ID de un GRUPO y el ID de un USUARIO, comprobar si el USUARIO es MODERADOR de ese GRUPO public function comprobar_moderador_estegrupo($taldea,$erabili_id='') { $esmoderadorestegrupo = 0; $aux = new Auxiliar(); // Sacar datos del USUARIO para saber si es MODERADOR-GRUPO o MODERADOR-SITE $zebaldintza_usu = 'WHERE usuario_ID = ?'; $balioak_usu = array($erabili_id); $elusuario = $this->erabiltzaile_lista_lortu($zebaldintza_usu,$balioak_usu); $totalelusuario = count($elusuario); if ($totalelusuario > 0) $esteusuario_perfil = $elusuario[0]['usuario_perfil']; // PERFIL del USUARIO para comprobar los CONTENIDOS de los SITES que puede ver if (isset($esteusuario_perfil) && ($esteusuario_perfil == 3 || $esteusuario_perfil == 4)) { // Si es MODERADOR-SITE o MODERADOR-GRUPO // Comprobar si este USUARIO es MODERADOR del GRUPO dependiendo de si es MODERADOR-GRUPO (si es un GRUPO de SU SITE del que es MODERADOR) o MODERADOR-SITE (si es algn GRUPO de SU SITE, o de sus SITE-HIJOS) $zebaldintza = " WHERE (grupo_ID = ?"; $balioak = array($taldea); if ($esteusuario_perfil == 3) { // Si es MODERADOR-SITE // GRUPOS de su SITE (del que es MODERADOR-SITE) o de sus SITE-HIJOS $zebaldintza = $zebaldintza . " AND grupo_ID IN (SELECT grupo FROM grupo_site WHERE (site IN (SELECT site_ID FROM site WHERE (site_ID IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)) OR site_padre IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3))))))"; array_push($balioak,$erabili_id,$erabili_id); } // Si es MODERADOR-SITE if ($esteusuario_perfil == 4) { // Si es MODERADOR-GRUPO $zebaldintza = $zebaldintza . " AND grupo_ID IN (SELECT grupo FROM usuario_grupo WHERE (usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4)) AND grupo IN (SELECT grupo FROM grupo_site)))"; array_push($balioak,$erabili_id); } // Si es MODERADOR-GRUPO $zebaldintza = $zebaldintza . ")"; $taldeak = $aux->grupo_lista($zebaldintza,$balioak); $totalgrupos = count($taldeak); // Si existe algn GRUPO que cumpla con las condiciones anteriores if ($totalgrupos > 0) { $esmoderadorestegrupo = 1; } } // Si es MODERADOR-SITE o MODERADOR-GRUPO unset($aux); return $esmoderadorestegrupo; } // Dado el ID de un USUARIO comprobar si es MODERADOR-SITE y de cual public function comprobar_moderador_site($erabili_id='') { $esmoderadorsite = 0; // Sacar SITE (ID) en el que el USUARIO es MODERADOR-SITE $aux = new Auxiliar(); $zebaldintza = " WHERE site_ID IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3))"; $balioak = array($erabili_id); $siteak = $aux->site_lista($zebaldintza,$balioak); $totalsites = count($siteak); // Si hay algun SITE del que es MODERADOR-SITE if ($totalsites > 0) { $id_site = $siteak[0]['site_ID']; $nombre_site = strtoupper($siteak[0]['site_titulo']); $esmoderadorsite = $id_site; } unset($aux); return $esmoderadorsite; } // Dados los IDs de un SITE y un USUARIO, comprobar si puede GESTIONAR contenidos del mismo (MODERADOR-GRUPO del SITE o MODERADOR-SITE del SITE o de su SITE-PADRE) public function comprobar_moderador_estesite($sitea,$erabili_id='') { $esmoderadorestesite = 0; // Por defecto NO es MODERADOR de este SITE // Sacar datos del USUARIO para saber si es MODERADOR-GRUPO o MODERADOR-SITE $zebaldintza_usu = 'WHERE usuario_ID = ?'; $balioak_usu = array($erabili_id); $elusuario = $this->erabiltzaile_lista_lortu($zebaldintza_usu,$balioak_usu); $totalelusuario = count($elusuario); if ($totalelusuario > 0) $esteusuario_perfil = $elusuario[0]['usuario_perfil']; // PERFIL del USUARIO para comprobar los CONTENIDOS de los SITES que puede ver // Sacar los SITES que puede administrar este USUARIO dependiendo de su PERFIL $aux = new Auxiliar(); $zebaldintza = " WHERE ("; $balioak = array(); // El SITE $zebaldintza = $zebaldintza . "site_ID = ?"; array_push($balioak,$sitea); if ($esteusuario_perfil == 3) { // Si es MODERADOR-SITE $zebaldintza = $zebaldintza . " AND ("; // SITE del que es MODERADOR $zebaldintza = $zebaldintza . "site_ID IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3))"; array_push($balioak,$erabili_id); // SITES-HIJOS del que es MODERADOR $zebaldintza = $zebaldintza . " OR site_padre IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3))"; array_push($balioak,$erabili_id); $zebaldintza = $zebaldintza . ")"; } if ($esteusuario_perfil == 4) { // Si es MODERADOR-GRUPO $zebaldintza = $zebaldintza . " AND ("; // SITE del GRUPO que modera $zebaldintza = $zebaldintza . "site_ID IN (SELECT site FROM grupo_site WHERE grupo IN (SELECT grupo FROM usuario_grupo WHERE usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4))))"; array_push($balioak,$erabili_id); $zebaldintza = $zebaldintza . ")"; } $zebaldintza = $zebaldintza . ")"; $siteak = $aux->site_lista($zebaldintza,$balioak); $totalsites = count($siteak); // Si slo hay 1 SITE del que es MODERADOR de algn GRUPO (1 nico SITE) if ($totalsites == 1) { $id_site = $siteak[0]['site_ID']; $nombre_site = strtoupper($siteak[0]['site_titulo']); $esmoderadorestesite = 1; } unset($aux); return $esmoderadorestesite; } // Dados los IDs de un SITE y un USUARIO, comprobar si el USUARIO es MODERADOR-GRUPO o MODERADOR-SITE de otro SITE (para permitirle ser MODERADOR de este SITE o NO) public function comprobar_moderador_otrosite($sitea,$erabili_id='') { $esmoderadorotrosite = 0; // Comprobar si este USUARIO es MODERADOR-GRUPO o MODERADOR-SITE de otro SITE distinto a este $aux = new Auxiliar(); $zebaldintza = " WHERE ("; $balioak = array(); // El SITE $zebaldintza = $zebaldintza . "site_ID <> ? AND ("; array_push($balioak,$sitea); // MODERADOR-SITE del SITE o de su SITE-PADRE $zebaldintza = $zebaldintza . "site_ID IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3))"; array_push($balioak,$erabili_id); // MODERADOR-GRUPO de un GRUPO del SITE $zebaldintza = $zebaldintza . " OR site_ID IN (SELECT site FROM grupo_site WHERE grupo IN (SELECT grupo FROM usuario_grupo WHERE usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4))))"; array_push($balioak,$erabili_id); $zebaldintza = $zebaldintza . ")"; $zebaldintza = $zebaldintza . ")"; $siteak = $aux->site_lista($zebaldintza,$balioak); $totalsites = count($siteak); // Si slo hay 1 SITE distinto a este del que es MODERADOR de algn GRUPO (1 nico SITE distinto de este) if ($totalsites == 1) { $esmoderadorotrosite = 1; } unset($aux); return $esmoderadorotrosite; } // Dados los IDs de un SITE y un USUARIO, comprobar si puede VER contenidos del mismo (MODERADOR-SITE del SITE, o de su SITE-PADRE, o de su SITE-HIJO, o de su SITE-HERMANO) public function comprobar_visibilidad_estesite($sitea,$erabili_id='') { $esvisibleestesite = 0; $aux = new Auxiliar(); // Sacamos los datos del USUARIO para saber si es MODERADOR-GRUPO o MODERADOR-SITE (de cualquiere SITE, no necesariamente del que viene como parametro) $zebaldintza_usu = "WHERE ("; $balioak_usu = array(); // El SITE $zebaldintza_usu = $zebaldintza_usu . "usuario_ID = ?"; array_push($balioak_usu,$erabili_id); $zebaldintza_usu = $zebaldintza_usu . ")"; $elusuario = $this->erabiltzaile_lista_lortu($zebaldintza_usu,$balioak_usu); $totalelusuario = count($elusuario); if ($totalelusuario > 0) $esteusuario_perfil = $elusuario[0]['usuario_perfil']; // PERFIL del USUARIO para comprobar los CONTENIDOS de los SITES que puede ver // Comprobar si este USUARIO es MODERADOR-SITE o MODERADOR-GRUPO (MODERADOR de algn GRUPO del SITE) $tipo_moderador = 0; // Por defecto NO es MODERADOR, ni de GRUPO ni de SITE if (isset($esteusuario_perfil) && $esteusuario_perfil == 4) { // Si es MODERADOR-GRUPO $tipo_moderador = 1; // Es MODERADOR-GRUPO } if (isset($esteusuario_perfil) && $esteusuario_perfil == 3) { // Si es MODERADOR-SITE $tipo_moderador = 2; // Es MODERADOR-SITE } if ($tipo_moderador > 0) { // Si es MODERADOR-GRUPO o MODERADOR-SITE // Comprobar si este USUARIO es MODERADOR de algn GRUPO del SITE, de su SITE-PADRE, de un SITE-HIJO o de un SITE-HERMANO ($sitea) $zebaldintza = " WHERE (1"; $balioak = array(); if ($tipo_moderador == 1) { // Si es MODERADOR-GRUPO // MODERADOR-GRUPO de algn GRUPO del SITE $zebaldintza = $zebaldintza . " AND (site_ID = ? AND site_ID IN (SELECT site FROM grupo_site WHERE grupo IN (SELECT grupo FROM usuario_grupo WHERE (usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4))))))"; array_push($balioak,$sitea,$erabili_id); } if ($tipo_moderador == 2) { // Si es MODERADOR-SITE $zebaldintza = $zebaldintza . " AND ("; // El SITE $zebaldintza = $zebaldintza . "site_ID = ?"; array_push($balioak,$sitea); $zebaldintza = $zebaldintza . " AND ("; // MODERADOR-SITE del SITE $zebaldintza = $zebaldintza . "(site_ID IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)))"; array_push($balioak,$erabili_id); // MODERADOR-SITE de un SITE-HIJO $zebaldintza = $zebaldintza . " OR (site_padre IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)))"; array_push($balioak,$erabili_id); // MODERADOR-SITE del SITE-PADRE $zebaldintza = $zebaldintza . " OR (site_ID IN (SELECT site_padre FROM site WHERE site_ID IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3))))"; array_push($balioak,$erabili_id); // MODERADOR-SITE de un SITE-HERMANO $zebaldintza = $zebaldintza . " OR (site_padre IN (SELECT site_padre FROM site WHERE site_ID IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3))) AND site_ID NOT IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)))"; array_push($balioak,$erabili_id,$erabili_id); $zebaldintza = $zebaldintza . ")"; $zebaldintza = $zebaldintza . ")"; } // Si es MODERADOR-SITE $zebaldintza = $zebaldintza . ")"; $siteak = $aux->site_lista($zebaldintza,$balioak); $totalsites = count($siteak); // Si existe algn SITE que cumpla con las condiciones anteriores if ($totalsites > 0) { $esvisibleestesite = 1; } } unset($aux); return $esvisibleestesite; } // Dados los IDs de un GRUPO y un MODERADOR, comprobar si el MODERADOR puede VER contenidos del GRUPO public function comprobar_visibilidad_estegrupo($modera_id='',$talde_id='') { $esvisibleestegrup = 0; // Comprobar si el MODERADOR-GRUPO ($modera_id) puede ver contenidos del GRUPO ($talde_id) $kontsulta = "SELECT grupo_ID,grupo_titulo,grupo_orden FROM grupo WHERE (grupo_ID <> 1 AND grupo_ID = ? AND (grupo_ID NOT IN (SELECT grupo FROM usuario_grupo) OR grupo_ID IN (SELECT grupo FROM usuario_grupo WHERE (usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4))))))"; $balioak = array($talde_id,$modera_id); $db = new Datubasea(); $db->konektatu(); $taldea = $db->select($kontsulta,$balioak); $db->deskonektatu(); unset($db); if (count($taldea) > 0) { // Si existe el GRUPO $esvisibleestegrup = 1; } return $esvisibleestegrup; } // Dados los IDs de un USUARIO y un MODERADOR, comprobar si el MODERADOR puede VER contenidos del USUARIO public function comprobar_visibilidad_esteusuario($modera_id='',$erabili_id='',$mota_mod='') { $esvisibleesteusu = 0; if ($mota_mod == 1) { // Si es MODERADOR-GRUPO // Comprobar si el MODERADOR-GRUPO ($modera_id) puede ver contenidos del USUARIO ($erabili_id) $kontsulta = "SELECT usuario_ID,usuario_egoera,usuario_socio,usuario_nombre,usuario_apellidos,usuario_perfil,usuario_moderadorsite,usuario_notificacion,usuario_nick,usuario_pasahitz,usuario_descripcion,usuario_eposta,usuario_irudia,usuario_dimx,usuario_dimy FROM usuario WHERE (usuario_ID = ?"; $balioak = array($erabili_id); // USUARIOS que NO sean ADMINISTRADORES, ni MODERADORES-SITE $kontsulta = $kontsulta . " AND usuario_perfil <> 2 AND usuario_perfil <> 3"; $kontsulta = $kontsulta . " AND ("; // USUARIOS que NO estn asociados a ningn GRUPO $kontsulta = $kontsulta . "usuario_ID NOT IN (SELECT usuario FROM usuario_grupo)"; // USUARIOS (que NO sean MODERADORES) de los GRUPOS que modera $kontsulta = $kontsulta . " OR (usuario_ID IN (SELECT usuario FROM usuario_grupo WHERE (grupo IN (SELECT grupo FROM usuario_grupo WHERE (usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4)))))))"; array_push($balioak,$modera_id); $kontsulta = $kontsulta . ")"; $kontsulta = $kontsulta . ")"; } // Si es MODERADOR-GRUPO if ($mota_mod == 2) { // Si es MODERADOR-SITE // Comprobar si el MODERADOR-SITE ($modera_id) puede ver contenidos del USUARIO ($erabili_id) $kontsulta = "SELECT usuario_ID,usuario_egoera,usuario_socio,usuario_nombre,usuario_apellidos,usuario_perfil,usuario_moderadorsite,usuario_notificacion,usuario_nick,usuario_pasahitz,usuario_descripcion,usuario_eposta,usuario_irudia,usuario_dimx,usuario_dimy FROM usuario WHERE (usuario_ID = ?"; $balioak = array($erabili_id); // USUARIOS que NO sean ADMINISTRADORES $kontsulta = $kontsulta . " AND usuario_perfil <> 2"; $kontsulta = $kontsulta . " AND ("; // USUARIOS que NO estn asociados a ningn GRUPO $kontsulta = $kontsulta . "usuario_ID NOT IN (SELECT usuario FROM usuario_grupo)"; // USUARIOS del SITE que modera y de sus SITE-HIJOS $kontsulta = $kontsulta . " OR usuario_ID IN (SELECT usuario FROM usuario_grupo WHERE grupo IN (SELECT grupo FROM grupo_site WHERE site IN (SELECT site_ID FROM site WHERE (site_ID IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)) OR site_padre IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3))))))"; array_push($balioak,$modera_id,$modera_id); $kontsulta = $kontsulta . ")"; $kontsulta = $kontsulta . ")"; } // Si es MODERADOR-SITE $db = new Datubasea(); $db->konektatu(); $erabiltzailea = $db->select($kontsulta,$balioak); $db->deskonektatu(); unset($db); if (count($erabiltzailea) > 0) { // Si existe el USUARIO $esvisibleesteusu = 1; } return $esvisibleesteusu; } // Dados los IDs de un USUARIO y un MODERADOR, comprobar si el MODERADOR puede GESTIONAR contenidos del USUARIO public function comprobar_editabilidad_esteusuario($modera_id='',$erabili_id='',$mota_mod='') { $eseditableesteusu = 0; if ($mota_mod == 1) { // Si es MODERADOR-GRUPO // Comprobar si el MODERADOR-GRUPO ($modera_id) puede ver contenidos del USUARIO ($erabili_id) $kontsulta = "SELECT usuario_ID,usuario_egoera,usuario_socio,usuario_nombre,usuario_apellidos,usuario_perfil,usuario_moderadorsite,usuario_notificacion,usuario_nick,usuario_pasahitz,usuario_descripcion,usuario_eposta,usuario_irudia,usuario_dimx,usuario_dimy FROM usuario WHERE (usuario_ID = ?"; $balioak = array($erabili_id); // USUARIOS que NO sean ADMINISTRADORES, ni MODERADORES-SITE $kontsulta = $kontsulta . " AND usuario_perfil <> 2 AND usuario_perfil <> 3"; // USUARIOS que NO sean MODERADORES-GRUPO, a no ser que sea EL MISMO $kontsulta = $kontsulta . " AND (usuario_perfil <> 4 OR usuario_ID = ?)"; array_push($balioak,$modera_id); $kontsulta = $kontsulta . " AND ("; // USUARIOS que NO estn asociados a ningn GRUPO $kontsulta = $kontsulta . "usuario_ID NOT IN (SELECT usuario FROM usuario_grupo)"; // USUARIOS (que NO sean MODERADORES) de los GRUPOS que modera $kontsulta = $kontsulta . " OR (usuario_ID IN (SELECT usuario FROM usuario_grupo WHERE (grupo IN (SELECT grupo FROM usuario_grupo WHERE (usuario IN (SELECT usuario_ID FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 4)))))))"; array_push($balioak,$modera_id); $kontsulta = $kontsulta . ")"; $kontsulta = $kontsulta . ")"; } // Si es MODERADOR-GRUPO if ($mota_mod == 2) { // Si es MODERADOR-SITE // Comprobar si el MODERADOR-SITE ($modera_id) puede ver contenidos del USUARIO ($erabili_id) $kontsulta = "SELECT usuario_ID,usuario_egoera,usuario_socio,usuario_nombre,usuario_apellidos,usuario_perfil,usuario_moderadorsite,usuario_notificacion,usuario_nick,usuario_pasahitz,usuario_descripcion,usuario_eposta,usuario_irudia,usuario_dimx,usuario_dimy FROM usuario WHERE (usuario_ID = ?"; $balioak = array($erabili_id); // USUARIOS que NO sean ADMINISTRADORES $kontsulta = $kontsulta . " AND usuario_perfil <> 2"; // USUARIOS que NO sean MODERADORES-SITE, a no ser que sea EL MISMO $kontsulta = $kontsulta . " AND (usuario_perfil <> 3 OR usuario_ID = ?)"; array_push($balioak,$modera_id); $kontsulta = $kontsulta . " AND ("; // USUARIOS que NO estn asociados a ningn GRUPO $kontsulta = $kontsulta . "usuario_ID NOT IN (SELECT usuario FROM usuario_grupo)"; // USUARIOS del SITE que modera y de sus SITE-HIJOS $kontsulta = $kontsulta . " OR usuario_ID IN (SELECT usuario FROM usuario_grupo WHERE grupo IN (SELECT grupo FROM grupo_site WHERE site IN (SELECT site_ID FROM site WHERE (site_ID IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3)) OR site_padre IN (SELECT usuario_moderadorsite FROM usuario WHERE (usuario_ID = ? AND usuario_perfil = 3))))))"; array_push($balioak,$modera_id,$modera_id); $kontsulta = $kontsulta . ")"; $kontsulta = $kontsulta . ")"; } // Si es MODERADOR-SITE $db = new Datubasea(); $db->konektatu(); $erabiltzailea = $db->select($kontsulta,$balioak); $db->deskonektatu(); unset($db); if (count($erabiltzailea) > 0) { // Si existe el USUARIO $eseditableesteusu = 1; } return $eseditableesteusu; } } ?>