<?php
/***
@file SD_micro_auth.php
@author SoyDigital
@creation date Agosto 2004
@version Micropagos 2.1
@email
[email protected]
***/
/***
Se requiere el fichero de configuracion
***/
require_once "conf.inc.php";
/***
Clase de autenticación del usuario
***/
class AuthUser{
var $missatge;
var $user;
var $pw;
var $conn_auth;
var $DB;
//función constructor
function AuthUser( $user, $password, $missatge = "AUTH SMS" ){
global $AUTHDB_USER;
global $AUTHDB_PASSWD;
global $AUTHDB_SERVER;
global $AUTHDB_NAME;
global $AUTHDB_ERROR_MSG;
$this->conn_auth = mysql_connect($AUTHDB_SERVER,$AUTHDB_USER,$AUTHDB_ PASSWD);
$this->DB = mysql_select_db($AUTHDB_NAME, $this->conn_auth);
if ( isset( $missatge )) $this->missatge = $missatge;
$this->user = $user;
$this->pw = $password;
$this->valid_user( $user, $password);
}
//función que envia los caracteres http para autentificación via web
function Authenticate() {
global $AUTHDB_ERROR_MSG;
Header( "X-Powered-By: Dis-Auth-Module" );
Header( "WWW-authenticate: Basic realm=\"".$this->missatge."\"" );
Header( "HTTP/1.0 401 Unauthorized" );
echo "$AUTHDB_ERROR_MSG<br>\n";
exit;
}
//función para validar usuario/password. Retorna TRUE si OK, FALSE si KO
function is_valid_password( $user, $passwd ){
global $AUTHUSER_LOGIN;
global $AUTHUSER_PASSW;
global $AUTHUSER_TABLE;
global $AUTHUSER_DATA_INI;
global $AUTHUSER_DATA_FI;
$dact = date("Y-m-d H:i:s",time());
$sql = "select * from $AUTHUSER_TABLE where " .
"$AUTHUSER_LOGIN=\"$user\" and $AUTHUSER_PASSW=\"$passwd\" and $AUTHUSER_DATA_INI <= \"$dact\" AND $AUTHUSER_DATA_FI >= \"$dact\"";
$res = mysql_query( $sql,$this->conn_auth );
if ( mysql_num_rows( $res ) == 0 ) return FALSE;
else return TRUE;
}
//función que valida si el usuario está activo, si el password es correcto y si tiene permisos para entrar como usuario o bien como un grupo
function valid_user( $user, $password){
// Mira si el usuario está activo o no
if ( !isset( $user )){
$this->Authenticate(); //si no está el usuario demandado
}
if ( !$this->is_valid_password( $user, $password ) ){
$this->Authenticate();
}
}
//función para cambiar de usuario
function logout( ){
$this->Authenticate(); //si no está el usuario demandado
}
}
?>