summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--README.md16
-rw-r--r--bin/wiki/ImportarPerfil/ImportarPerfil.php (renamed from bin/wiki/ImportarPerfil.php)47
-rw-r--r--bin/wiki/reevoPages/int/Plantilla:Sistema-ImportarPerfil.mw4
-rw-r--r--www/wiki/LocalSettings.Reevo.php3
-rw-r--r--www/wiki/extensions/ImportarPerfil/ImportarPerfil.class.php6
-rw-r--r--www/wiki/extensions/ImportarPerfil/specials/ImportarPerfil.php2
7 files changed, 42 insertions, 37 deletions
diff --git a/.gitignore b/.gitignore
index 2b6919a0..cfb57725 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@
.directory
*.old
*.log
+export-*.json
log/admin/*
log/crm/*
diff --git a/README.md b/README.md
index 3f463c98..68f0ea1a 100644
--- a/README.md
+++ b/README.md
@@ -83,15 +83,9 @@ Para actualizar una página en particular: ```cd bin/wiki/ && php initReevo.php
### Creador de páginas de usuarios que importa datos de Elgg
-* Script: ```bin/wiki/ImportarPerfil.php```
+* Script: ```bin/wiki/ImportarPerfil/ImportarPerfil.php```
* Extensión de MW: ```ImportarPerfil```
-* Descripción: cuando un usuario nuevo en el wiki usa un e-mail que tiene asociado un usuario en Elgg, se crea la página Usuario:NombreDeUsuario tomando los valores del perfil de Elgg. Si lo que coincide es el nombre de usuario nuevo y uno antiguo en Elgg, se pregunta al usuario se quiere hacer la importación (ya que podria ser otra persona queriendo usar el mismo nombre de usuario).
-
-Se usa el elgg-cli para exportar los datos:
-
-```
-/srv/reevo-web/www/red/vendor/hypejunction/elgg-cli/elgg-cli user:get --username=Yaco
-```
+* Descripción: cuando un usuario nuevo en el wiki usa un e-mail que tiene asociado un usuario en Elgg, se crea la página Usuario:NombreDeUsuario tomando los valores del perfil de Elgg. Si lo que coincide es el nombre de usuario nuevo y uno antiguo en Elgg, se pregunta al usuario se quiere hacer la importación (ya que podria ser otra persona queriendo usar el mismo nombre de usuario). Los datos no se obtienen directo de Elgg, sino de una base de datos exportada en json.
Para que el usuario API funcione, tiene que tener el email validado, para hacerlo por consola:
@@ -100,9 +94,7 @@ php resetUserEmail.php User user@gmail.com
php changePassword.php --user=User --password=password
```
-No anda el script de extraccion de ELGG si esta activado el plugin ```profile_manager_joingroups```
-
-Se puede importar desde la línea de comandos cualquier usuario de ELGG con este comando: ```php bin/wiki/ImportarPerfil.php -f true -u <Usuario>```
+Se puede importar desde la línea de comandos cualquier usuario de ELGG con este comando: ```php bin/wiki/ImportarPerfil/ImportarPerfil.php -f true -u <Usuario>```
### Migrar experiencias desde Ushahidi
@@ -119,3 +111,5 @@ Para que funcione, hay que instalar metascraper y otras aplicaciones de nodejs:
```
sudo npm install metascraper metascraper-author metascraper-date metascraper-description metascraper-image metascraper-logo metascraper-clearbit metascraper-publisher metascraper-title metascraper-url franc-cli got minimist --global
```
+
+Tambien hay que instalar ```php-geoip```
diff --git a/bin/wiki/ImportarPerfil.php b/bin/wiki/ImportarPerfil/ImportarPerfil.php
index 09e7972e..4e5681d8 100644
--- a/bin/wiki/ImportarPerfil.php
+++ b/bin/wiki/ImportarPerfil/ImportarPerfil.php
@@ -6,10 +6,10 @@
# ----
-error_reporting(0);
+error_reporting(-1);
// Load all the stuff
-require_once( __DIR__ . '/vendor/autoload.php' );
-require_once( __DIR__ .'/../../etc/global_config.php' );
+require_once( __DIR__ . '/../vendor/autoload.php' );
+require_once( __DIR__ .'/../../../etc/global_config.php' );
// Log in to a wiki
$api = new \Mediawiki\Api\MediawikiApi( $wgServer .'/api.php' );
@@ -31,34 +31,42 @@ if ($options['u']) {
$email = $options['e'];
$force = $options['f'];
$new = $options['n'];
- echo "NEW es $new";
+ // echo "NEW es $new";
+
+ $strJsonFileContents = file_get_contents("/srv/reevo-2020/bin/wiki/ImportarPerfil/export-elgg-usuarios.json");
+ $fullarray = json_decode($strJsonFileContents, true);
+ // print_r($fullarray); // print array
+
if ($email) {
// Verifico si existe un usuario con el email indicado, entonces lo cargo
- $byEmail = exec('cd /srv/reevo-web/www/red/vendor/hypejunction/elgg-cli && ./elgg-cli user:get --email '.$email);
+ $byEmail = array_search($email, array_column($fullarray, 'email'));
+ // $byEmail = exec('cd /srv/reevo-web/www/red/vendor/hypejunction/elgg-cli && ./elgg-cli user:get --email '.$email);
// error_log($byEmail);
if ($byEmail) {
error_log('Voy a crearlo por email');
- CrearPerfil($username, $byEmail, $services);
+ $datos = $fullarray[$byEmail];
+ CrearPerfil($username, $datos, $services);
exit();
}
}
- $byUsername = exec('cd /srv/reevo-web/www/red/vendor/hypejunction/elgg-cli && ./elgg-cli user:get --username '.$username);
+ $byUsername = array_search(strtolower($username), array_map('strtolower', array_column($fullarray, 'username')));
if ($byUsername) {
if ($force == 'true') {
error_log('Voy a importar los datos porque estoy forzado');
- CrearPerfil($username, $byUsername, $services);
- // $services->newPageDeleter()->delete(
- // $services->newPageGetter()->getFromTitle( 'Usuario:'.$username.'/ImportarPerfil' ),
- // array( 'reason' => 'Ya se importaron los datos del perfil anterior' )
- // );
+ $datos = $fullarray[$byUsername];
+ CrearPerfil($username, $datos, $services);
+ $services->newPageDeleter()->delete(
+ $services->newPageGetter()->getFromTitle( 'Usuario:'.$username.'/ImportarPerfil' ),
+ array( 'reason' => 'Ya se importaron los datos del perfil anterior' )
+ );
exit();
} else {
error_log('Voy a crear la subpagina de username');
CrearSubImportarPerfil($username, $services);
if ($new == 'true') {
CrearPerfilLimpio($username, $services);
- error_log("No existe un usuario llamado '$username' en la versión anterior de REEVO. Pero es nuevo, asi que creo una pagina de usuario vacia.\n");
+ error_log("Existe un usuario llamado '$username' en la versión anterior de REEVO. No importo los datos pero le doy la opción para que lo importe.\n");
}
// exit();
}
@@ -83,19 +91,18 @@ if ($options['u']) {
// }
function CrearPerfil($username, $profiledata,$services) {
- $userdata = json_decode($profiledata, true);
-
- if (strpos($userdata['icon'], 'defaultmaster') == false) {
- $partes = explode('/',$userdata['icon']);
- $icon = $partes[9].'/'.$partes[10].'/'.$partes[11].'/'.$partes[12];
- echo $icon;
+ // print_r($profiledata);
+ $userdata = $profiledata;
+ $icon = exec("find /srv/reevo-web/files/red/ -name {$userdata['guid']}master.jpg");
+ if ($icon) {
+ echo "Imagen de usuario: $icon \n";
// Definimos el nombre del archivo de la imagen
$snapshot_name = 'Avatar-' . $username . '.jpg';
$snaphot_pagecontent = 'Imagen de usuario migrada desde la plataforma web';
$snaphot_desc = 'Imagen de usuario migrada desde la plataforma web';
$fileUploader = $services->newFileUploader();
$fileUploader->setChunkSize( 1024 * 1024 * 10 );
- $fileUploader->upload( $snapshot_name, '/srv/reevo-web/files/red/'.$icon, $snaphot_pagecontent, $snaphot_desc );
+ $fileUploader->upload( $snapshot_name, $icon, $snaphot_pagecontent, $snaphot_desc );
}
$content = '{{Usuario
diff --git a/bin/wiki/reevoPages/int/Plantilla:Sistema-ImportarPerfil.mw b/bin/wiki/reevoPages/int/Plantilla:Sistema-ImportarPerfil.mw
index ea6d03b4..90ff2c55 100644
--- a/bin/wiki/reevoPages/int/Plantilla:Sistema-ImportarPerfil.mw
+++ b/bin/wiki/reevoPages/int/Plantilla:Sistema-ImportarPerfil.mw
@@ -1,7 +1,7 @@
<includeonly>
-Existe una cuenta con este mismo nombre de usuario en la versión anterior de REEVO, puedes ver dicho perfil siguiente [https://red.reevo.org/profile/{{#USERNAME:}} este enlace].
+Existe una cuenta con este mismo nombre de usuario en la versión anterior de REEVO, puedes ver dicho perfil siguiente [https://red.reevo.org/profile/{{BASEPAGENAME}} este enlace].
-Si es una cuenta tuya, podemos importar los datos de ese usuario a [[Usuario:{{#USERNAME:}}|tu perfil en la versión actual de REEVO]]. <b>Ten en cuenta que Se reemplazará todo el contenido de tu perfil actual</b>.
+Si es una cuenta tuya, podemos importar los datos de ese usuario a [[Usuario:{{BASEPAGENAME}}|tu perfil en la versión actual de REEVO]]. <b>Ten en cuenta que Se reemplazará todo el contenido de tu perfil actual</b>.
'''{{#ifeq: {{BASEPAGENAME}} | {{#USERNAME:}} | [[Especial:ImportarPerfil|¡Importar datos de mi usuario anterior!]] | Identificate como este usuario para poder realizar la importación desde esta página }}'''
diff --git a/www/wiki/LocalSettings.Reevo.php b/www/wiki/LocalSettings.Reevo.php
index 1028b1e3..063f0fe7 100644
--- a/www/wiki/LocalSettings.Reevo.php
+++ b/www/wiki/LocalSettings.Reevo.php
@@ -35,8 +35,9 @@ $wgDBmysql5 = false;
$wgEmailConfirmToEdit = true;
$wgHiddenPrefs[] = 'realname';
$wgHiddenPrefs[] = 'genre';
-$wgGroupPermissions['*']['createaccount'] = false;
+$wgGroupPermissions['*']['createaccount'] = true;
$wgGroupPermissions['user']['upload_by_url'] = true;
+$wgRedirectOnLogin = 'Special:MyPage';
## Email
diff --git a/www/wiki/extensions/ImportarPerfil/ImportarPerfil.class.php b/www/wiki/extensions/ImportarPerfil/ImportarPerfil.class.php
index a6a01fd7..4141e047 100644
--- a/www/wiki/extensions/ImportarPerfil/ImportarPerfil.class.php
+++ b/www/wiki/extensions/ImportarPerfil/ImportarPerfil.class.php
@@ -6,10 +6,12 @@ class ImportarPerfilHooks {
if ( $byEmail ) {
return true;
}
- error_log('############### Se creo una cuenta, intento importar datos del perfil de Elgg si existe');
$username = $user->mName;
$email = $user->mEmail;
- $importar = exec('php /srv/reevo-2020/bin/wiki/ImportarPerfil.php -n true -u '.$username.' -e '.$email);
+ error_log("############### Se creo una cuenta, intento importar datos del perfil de $username de Elgg si existe");
+ $importar = exec("php /srv/reevo-2020/bin/wiki/ImportarPerfil/ImportarPerfil.php -n true -u $username -e $email");
+ error_log("Devolvio: $importar");
+
// return self::addRedirect( 'addnewaccount' );
}
}
diff --git a/www/wiki/extensions/ImportarPerfil/specials/ImportarPerfil.php b/www/wiki/extensions/ImportarPerfil/specials/ImportarPerfil.php
index f2c539d3..72bc2bf5 100644
--- a/www/wiki/extensions/ImportarPerfil/specials/ImportarPerfil.php
+++ b/www/wiki/extensions/ImportarPerfil/specials/ImportarPerfil.php
@@ -18,7 +18,7 @@ class DTImportarPerfil extends SpecialPage {
global $wgUser;
$currentuser = $wgUser->getName();
- exec('php /srv/reevo-2020/bin/wiki/ImportarPerfil.php -f true -u '.$currentuser);
+ exec('php /srv/reevo-2020/bin/wiki/ImportarPerfil/ImportarPerfil.php -f true -u '.$currentuser);
$text = wfMessage( 'importarperfil-msg', $currentuser);
$this->getOutput()->addHTML( $text );