--- /dev/null
+<?php
+// vim: set binary noeol et sw=4 sts=4 :
+// Grupo 10
+//
+// Lucarella, Schein, Arena
+//
+// Creado: Leandro Lucarella (mar may 3 00:14:11 ART 2005)
+//
+// $Id$
+
+/**
+ * Indica si ya hay 2 administradores.
+ *
+ * @return true si hay 2 administradores, false si no.
+ */
+function file_admins_check()
+{
+ return count(@file('data/admins.txt', 'r')) > 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