2 // vim: set binary noeol et sw=4 sts=4 :
5 // Lucarella, Schein, Arena
7 // Creado: Leandro Lucarella (mar may 3 00:14:11 ART 2005)
12 * Indica si ya hay 2 administradores.
14 * @return true si hay 2 administradores, false si no.
16 function file_admins_check()
18 return count(@file('data/admins.txt')) > 1;
22 * Indica si un usuario es administrador
24 * @return true si es administrador, false si no.
26 function file_admins_es_admin($user)
28 if (in_array($user, file_admins_get())) return true;
33 * Obtiene los administradores actuales.
35 * @return array con los administradores actuales (false si hay error).
37 function file_admins_get()
39 if (!($admins = file('data/admins.txt'))) return false;
40 array_walk($admins, '_file_admins_walk_trim');
45 * Guarda un nuevo administrador.
47 * @return bool true si no hay error.
49 function file_admins_add($user)
51 if (file_admins_check()) return false; // Si ya hay 2, no se puede agregar
52 if (($f = fopen('data/admins.txt', 'a')) === false) return false;
53 fwrite($f, "$user\n");
59 * Reemplaza un administrador por otro.
61 * @return bool true si no hay error.
63 function file_admins_replace($viejo, $nuevo)
65 if (($admins = file_admins_get()) === false) return false; // error
66 array_walk($admins, '_file_admins_walk_replace', array($viejo, $nuevo));
67 if (($f = fopen('data/admins.txt', 'w')) === false) return false; //error
68 foreach ($admins as $admin) fwrite($f, "$admin\n");
73 function _file_admins_walk_trim(&$item, $clave)
78 function _file_admins_walk_replace(&$item, $clave, $que)
80 if ($item == $que[0]) $item = $que[1];