[!
$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.
# @return void
$SAMURAI_Perm->{new} = sub
{
- my $sql = "SELECT DISTINCT psu.isd_sistema AS sistema, pps.id_permiso AS permiso FROM samurai.perfil_sist_usuario AS psu, samurai.perm_perfil_sist AS pps WHERE psu.login = ? AND psu.id_perfil = pps.id_perfil AND psu.id_sistema = pps.id_sistema ORDER BY psu.id_sistema";
+ my $sql = "SELECT DISTINCT psu.id_sistema AS sistema, pps.id_permiso AS permiso FROM samurai.perfil_sist_usuario AS psu, samurai.perm_perfil_sist AS pps WHERE psu.login = ? AND psu.id_perfil = pps.id_perfil AND psu.id_sistema = pps.id_sistema ORDER BY psu.id_sistema";
$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});
# permisos automaticamente lo redirige a una pagina de error.
#
# @return void
-# TODO Probar que esto este funcionando bien.
$SAMURAI_Perm->{chequear} = sub
{
if (!$ret->{SAMURAI_Perm}->{tiene} (@_)) {
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 = ?';
- 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()) {
$re->finish();
#Desconexion con la base
$dbh->disconnect;
- $udat{SAMURAI_Perm_vars}{observaciones}{$sistema}{$perm} = \%obser;
-
- return $obser;
+ $udat{SAMURAI_Perm_vars}{observaciones} = \%obser;
+ 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;