]> git.llucax.com Git - z.facultad/75.43/tp1.git/blob - src/lib/file.admins.php
Nueva lib para manejo de archivo de asesores.
[z.facultad/75.43/tp1.git] / src / lib / file.admins.php
1 <?php
2 // vim: set binary noeol et sw=4 sts=4 :
3 // Grupo 10
4 //
5 // Lucarella, Schein, Arena
6 //
7 // Creado: Leandro Lucarella (mar may  3 00:14:11 ART 2005)
8 //
9 // $Id$
10
11 /**
12  * Indica si ya hay 2 administradores.
13  *
14  * @return true si hay 2 administradores, false si no.
15  */
16 function file_admins_check()
17 {
18     return count(@file('data/admins.txt', 'r')) > 1;
19 }
20
21 /**
22  * Indica si un usuario es administrador
23  *
24  * @return true si es administrador, false si no.
25  */
26 function file_admins_es_admin($user)
27 {
28     if (!($admins = @file('data/admins.txt', 'r'))) return false;
29     foreach ($admins as $admin) if (trim($admin) == $user) return true;
30     return false;
31 }
32
33 /**
34  * Obtiene los administradores actuales.
35  *
36  * @return array con los administradores actuales (false si hay error).
37  */
38 function file_admins_get()
39 {
40     if (!($admins = @file('data/admins.txt', 'r'))) return false;
41     if (array_walk($admins, '_file_admins_walk_trim')) return false;
42     return $admins;
43 }
44
45 /**
46  * Guarda un nuevo administrador.
47  *
48  * @return bool true si no hay error.
49  */
50 function file_admins_add($user)
51 {
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");
55     fclose($f);
56     return true;
57 }
58
59 /**
60  * Reemplaza un administrador por otro.
61  *
62  * @return bool true si no hay error.
63  */
64 function file_admins_replace($viejo, $nuevo)
65 {
66     if (($admins = file_admins_get()) === false) return false; // error
67     if (array_walk($admins, '_file_admins_walk_replace', array($viejo, $nuevo)))
68         return false; //error
69     if (($f = fopen("data/admins.txt", 'w')) === false) return false; //error
70     foreach ($admins as $admin) fwrite($f, "$admin\n");
71     fclose($f);
72     return true;
73 }
74
75 function _file_admins_walk_trim(&$item, $clave)
76 {
77     $item = trim($item);
78 }
79
80 function _file_admins_walk_replace(&$item, $clave, $que)
81 {
82     if ($item == $que[0]) $item = $que[1];
83 }
84
85 ?>