X-Git-Url: https://git.llucax.com/mecon/samurai.git/blobdiff_plain/1dccba5bb5232c5350e84481851cb5a500df623d..ce8c82238fa511d1a2523e67cca4d76b4a66a4a0:/lib_perl/Perm.epl?ds=sidebyside diff --git a/lib_perl/Perm.epl b/lib_perl/Perm.epl index fda3381..fb8810f 100644 --- a/lib_perl/Perm.epl +++ b/lib_perl/Perm.epl @@ -30,6 +30,23 @@ [! $CLEANUP{'SAMURAI_Perm'} = 0; +use Data::Dumper; + +# Parser para el ini de configuracion +# +# @return hash +$SAMURAI_Perm->{parse_ini} = sub +{ + use Config::IniFiles; + my $cfg = new Config::IniFiles( -file => + "/var/www/sistemas/samurai/lib_perl/consultasDB.ini" ); + $dsn->{dsn} = $cfg->val('conf', 'dsn'); + $dsn->{user} = $cfg->val('conf', 'user'); + $dsn->{password} = $cfg->val('conf', 'password'); + return $dsn; +}; + + # Simil Constructor. # # @param string $login Login del usuario para el cual obtener los permisos. @@ -42,8 +59,8 @@ $SAMURAI_Perm->{new} = sub $udat{SAMURAI_Perm_vars}{login} = @_[0]; $udat{SAMURAI_Perm_vars}{id_sistema} = @_[1]; ##Conexion con la base - #TODO Cambiar los parametros de conexion segun corresponda. - my $dbh = DBI->connect('dbi:mysql:dbname=samurai;host=bal747f',"intranet","intranet"); + $dns = $ret->{SAMURAI_Perm}->{parse_ini} (); + my $dbh = DBI->connect($dsn->{dsn}, $dsn->{user}, $dsn->{password}); ##Obtengo los permisos de la base $re = $dbh->prepare($sql); $re->execute($udat{SAMURAI_Perm_vars}{login}); @@ -147,8 +164,9 @@ $SAMURAI_Perm->{getObservaciones} = sub if (!$udat{SAMURAI_Perm_vars}{observaciones}{$sistema}{$perm}) { $udat{SAMURAI_Perm_vars}{observaciones} = ''; $sql = 'SELECT ps.observaciones AS observaciones FROM samurai.perm_sist AS ps WHERE ps.id_permiso = ? AND ps.id_sistema = ?'; - #TODO cambiar los parametros de conexion segun corresponda - my $dbh = DBI->connect('dbi:mysql:dbname=samurai;host=bal747f',"intranet","intranet"); + ##Conexion con la base + $dns = $ret->{SAMURAI_Perm}->{parse_ini} (); + my $dbh = DBI->connect($dsn->{dsn}, $dsn->{user}, $dsn->{password}); $re = $dbh->prepare($sql); $re->execute($perm, $sistema); while ($r = $re->fetchrow_hashref()) { @@ -161,6 +179,46 @@ $SAMURAI_Perm->{getObservaciones} = sub return $udat{SAMURAI_Perm_vars}{observaciones}; } }; + +# MANAZAR: Funcion para dar un perfil a un usuario en un sistema +# +# @return void +$SAMURAI_Perm->{asignarPerfil} = sub +{ + $id_perfil = @_[0]; + my $login=$udat{SAMURAI_Perm_vars}{login}; + my $id_sistema=$udat{SAMURAI_Perm_vars}{id_sistema}; + my $resp=$udat{'user'}; + my $sql = "REPLACE INTO perfil_sist_usuario (login,id_perfil,id_sistema,responsable) VALUES ('$login',$id_perfil,$id_sistema,'$resp')"; + ##Conexion con la base + $dns = $ret->{SAMURAI_Perm}->{parse_ini} (); + my $dbh = DBI->connect($dsn->{dsn}, $dsn->{user}, $dsn->{password}); + my $result=$dbh->do($sql); + #Desconexion con la base + $dbh->disconnect; +}; + +# MANAZAR: Funcion para quitar perfil a un usuario en un sistema +# +# @return void +$SAMURAI_Perm->{quitarPerfil} = sub +{ + $id_perfil = @_[0]; + my $login=$udat{SAMURAI_Perm_vars}{login}; + my $id_sistema=$udat{SAMURAI_Perm_vars}{id_sistema}; + my $resp=$udat{'user'}; + my $sql = "DELETE FROM perfil_sist_usuario where (login='$login') AND (id_perfil=$id_perfil) AND (id_sistema=$id_sistema)"; + ##Conexion con la base + $dns = $ret->{SAMURAI_Perm}->{parse_ini} (); + my $dbh = DBI->connect($dsn->{dsn}, $dsn->{user}, $dsn->{password}); + ##Conexion con la base + my $result=$dbh->do($sql); + #Desconexion con la base + $dbh->disconnect; +}; + + + !] [- $ret = shift;