-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreateadminuser.php
More file actions
67 lines (58 loc) · 2.57 KB
/
Copy pathcreateadminuser.php
File metadata and controls
67 lines (58 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
define('CLI_SCRIPT', true);
require(__DIR__ . '/config.php');
require_once($CFG->dirroot . '/user/lib.php'); // Importante: Cargar librería de usuarios
// --- CONFIGURACIÓN DEL NINJA ---
$new_username = 'soporte_tecnico';
$new_password = 'Moodle!2025*'; // Asegúrate de que cumpla las reglas (Mayús, minús, símbolo)
$new_email = 'soporte@localhost.local';
// ------------------------------
echo "\n--- INICIANDO CREACIÓN DE SUPER ADMIN ---\n";
try {
// 1. Verificar si ya existe para no dar error
if ($DB->record_exists('user', array('username' => $new_username))) {
echo "⚠️ El usuario '$new_username' ya existe. Abortando creación.\n";
// Si quisieras podrías forzar el reseteo de pass aquí, pero mejor no tocar si ya existe.
exit(1);
}
// 2. Definir el objeto de usuario completo
// user_create_user se encarga de hashear la password correctamente UNA vez.
$userinfo = array(
'username' => $new_username,
'password' => $new_password,
'email' => $new_email,
'firstname' => 'Soporte',
'lastname' => 'Tecnico',
'city' => 'Madrid',
'country' => 'ES',
'auth' => 'manual', // Forzamos auth manual
'confirmed' => 1, // Confirmado automáticamente
'mnethostid'=> $CFG->mnet_localhost_id,
'lang' => $CFG->lang // Idioma por defecto del sitio
);
// 3. Crear el usuario (Magia pura)
$userid = user_create_user($userinfo);
echo "Usuario creado con éxito. ID: $userid\n";
// 4. Elevación de Privilegios (Hacerlo Site Admin)
$admins = explode(',', $CFG->siteadmins);
if (!in_array($userid, $admins)) {
$admins[] = $userid;
set_config('siteadmins', implode(',', $admins));
echo "Permisos de 'Site Admin' concedidos.\n";
}
// 5. SALVAVIDAS: Activar auth 'manual' si está desactivada
// Muchos moodles corporativos lo tienen apagado y no te dejarían entrar.
$auth_plugins = explode(',', $CFG->auth);
if (!in_array('manual', $auth_plugins)) {
$auth_plugins[] = 'manual';
set_config('auth', implode(',', $auth_plugins));
echo "Plugin de autenticación 'manual' activado en la configuración global.\n";
}
echo "---------------------------------------------------\n";
echo " LISTO PARA ACCEDER\n";
echo "Usuario: $new_username\n";
echo "Clave: $new_password\n";
echo "---------------------------------------------------\n";
} catch (Exception $e) {
echo "CRITICAL ERROR: " . $e->getMessage() . "\n";
}