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', 'r')) > 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 (!($admins = @file('data/admins.txt', 'r'))) return false;
29 foreach ($admins as $admin) if (trim($admin) == $user) return true;
34 * Obtiene los administradores actuales.
36 * @return array con los administradores actuales (false si hay error).
38 function file_admins_get()
40 if (!($admins = @file('data/admins.txt', 'r'))) return false;
41 if (array_walk($admins, '_file_admins_walk_trim')) return false;
46 * Guarda un nuevo administrador.
48 * @return bool true si no hay error.
50 function file_admins_add($user)
52 if (file_admins_check()) return false; // Si ya hay 2, no se puede agregar
53 if (($f = fopen("data/admins.txt", 'a')) === false) return false;
54 fwrite($f, "$user\n");
60 * Reemplaza un administrador por otro.
62 * @return bool true si no hay error.
64 function file_admins_replace($viejo, $nuevo)
66 if (($admins = file_admins_get()) === false) return false; // error
67 if (array_walk($admins, '_file_admins_walk_replace', array($viejo, $nuevo)))
69 if (($f = fopen("data/admins.txt", 'w')) === false) return false; //error
70 foreach ($admins as $admin) fwrite($f, "$admin\n");
75 function _file_admins_walk_trim(&$item, $clave)
80 function _file_admins_walk_replace(&$item, $clave, $que)
82 if ($item == $que[0]) $item = $que[1];