From ccbc22b804a14b60f48383323105df5bd30b84bf Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Tue, 3 May 2005 04:08:22 +0000 Subject: [PATCH] Se agrega una lib para el manejo de archivo de administradores. --- src/lib/file.admins.php | 85 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 src/lib/file.admins.php diff --git a/src/lib/file.admins.php b/src/lib/file.admins.php new file mode 100644 index 0000000..650d69d --- /dev/null +++ b/src/lib/file.admins.php @@ -0,0 +1,85 @@ + 1; +} + +/** + * Indica si un usuario es administrador + * + * @return true si es administrador, false si no. + */ +function file_admins_es_admin($user) +{ + if (!($admins = @file('data/admins.txt', 'r'))) return false; + foreach ($admins as $admin) if (trim($admin) == $user) return true; + return false; +} + +/** + * Obtiene los administradores actuales. + * + * @return array con los administradores actuales (false si hay error). + */ +function file_admins_get() +{ + if (!($admins = @file('data/admins.txt', 'r'))) return false; + if (array_walk($admins, '_file_admins_walk_trim')) return false; + return $admins; +} + +/** + * Guarda un nuevo administrador. + * + * @return bool true si no hay error. + */ +function file_admins_add($user) +{ + if (file_admins_check()) return false; // Si ya hay 2, no se puede agregar + if (($f = fopen("data/admins.txt", 'a')) === false) return false; + fwrite($f, "$user\n"); + fclose($f); + return true; +} + +/** + * Reemplaza un administrador por otro. + * + * @return bool true si no hay error. + */ +function file_admins_replace($viejo, $nuevo) +{ + if (($admins = file_admins_get()) === false) return false; // error + if (array_walk($admins, '_file_admins_walk_replace', array($viejo, $nuevo))) + return false; //error + if (($f = fopen("data/admins.txt", 'w')) === false) return false; //error + foreach ($admins as $admin) fwrite($f, "$admin\n"); + fclose($f); + return true; +} + +function _file_admins_walk_trim(&$item, $clave) +{ + $item = trim($item); +} + +function _file_admins_walk_replace(&$item, $clave, $que) +{ + if ($item == $que[0]) $item = $que[1]; +} + +?> \ No newline at end of file -- 2.43.0