2 vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 +--------------------------------------------------------------------+
4 | SAMURAI - Samurai_Lib |
5 +--------------------------------------------------------------------+
6 | Sistema de Administracion y Matenimiento de Usuarios Relativo A |
8 | Ministerio de Economía |
9 +--------------------------------------------------------------------+
11 | Autor: Martin Marrese <mmarre@mecon.gov.ar> |
12 +--------------------------------------------------------------------+
22 $CLEANUP{'SA_Perm'} = 0;
24 ## in: sistema -> identificador numerico del sistema
25 ## login se obtiene automaticamente en $udat{user}
28 $SA_Perm->{SA_Perm} = sub
31 $sql = "SELECT DISTINCT pps.id_permiso AS id_permiso FROM perfil_sist_usuario AS psu , perm_perfil_sist AS pps WHERE psu.id_sistema = ? AND login = ? AND psu.id_perfil = pps.id_perfil";
33 $udat{SA_Perm_Id_Sistema} = @_[0];
34 $result = true; #asumo que no va a fallar
36 ##Conexion con la base
37 $dbh = DBI->connect('dbi:mysql:dbname=samurai;host=localhost',"intranet","intranet");
39 ##Obtengo los permisos de la base
40 $re = $dbh->prepare($sql);
41 $re->execute($udat{SA_Perm_Id_Sistema}, $udat{user});
42 while ($r = $re->fetchrow_hashref()) {
43 push (@tmp, $r->{id_permiso});
47 #Desconexion con la base
49 $udat{SA_Permisos} = \@tmp;#Se asignan a $udat para que esten disponibles siempre
55 ## Verifica que el usuario tenga todos los permisos que se pasan como
57 ## in: permisos a buscar
59 ## out: int 1 -> ok, 0 -> nok
60 $SA_Perm->{tiene} = sub
62 $result = 1; #asumo que no va a fallar
64 $result = 0; #Siempre debe haber como minimo un permiso a comparar
67 @rr = $ret->{SA_Perm}->{tieneODevol} (@_);
68 if (scalar(@_) != scalar(@rr)) {
76 ## Verifica que el usuario tenga alguno de los permisos que se pasan como
78 ## in: permisos a buscar
80 ## out: int 1 -> ok, 0 -> nok
81 $SA_Perm->{tieneO} = sub
83 $result = 1; #asumo que no va a fallar
85 $result = 0; #Siempre debe haber como minimo un permiso a comparar
88 @rr = $ret->{SA_Perm}->{tieneODevol} (@_);
97 ## Verifica que el usuario tenga un permiso que se pasa como
99 ## in: permiso a buscar
101 ## out: int 1 -> ok, 0 -> nok
102 $SA_Perm->{tieneUn} = sub
104 $result = 1; #asumo que no va a fallar
106 $result = 0; #Siempre debe haber un permiso a comparar
109 @rr = $ret->{SA_Perm}->{tieneODevol} (@_);
120 ## Compara el contenido de dos arrays y devuelve un array con
121 ## aquellos datos que se repiten en ambos.
122 ## in: array permisos a buscar
124 ## out: array con coincidencias
125 $SA_Perm->{tieneODevol} = sub
129 @result[0] = "ERROR"; #Siempre se debe pasar al menos un permiso
133 foreach $perm (@{$udat{SA_Permisos}}) {
135 push (@result, $arg);
146 $ret->{SA_Perm} = $SA_Perm;