Ir a la documentación de este archivo.00001 <?php
00002
00003 class Seguridad{
00004
00005 private $session_user;
00006
00027 public function Autenticar( $usuario, $clave ){
00028
00029 if( session_id( ) == '' ) session_start( );
00030
00031 $Usuario = new Usuario( );
00032 $existe = $Usuario->getUsuarioPorCredenciales( $usuario, $clave );
00033 if( !$existe ){
00034 $Usuario = new Participante( );
00035 $existe = $Usuario->getParticipantePorCredenciales( $usuario, $clave );
00036 if( !$existe ){
00037 $Usuario = new Profesor( );
00038 $existe = $Usuario->getProfesorPorCredenciales( $usuario, $clave );
00039 if( !$existe ){
00040 $Usuario = new Evaluador( );
00041 $existe = $Usuario->getEvaluadorPorCredenciales( $usuario, $clave );
00042 }
00043 }
00044 }
00045
00046 if( $existe && $Usuario->getStatus( ) == 1 ){
00047 $_SESSION['timeout'] = time( ) + Config::get( 'security/session_timeout' );
00048 $_SESSION['session_user_unique_id'] = $Usuario->getId( );
00049 $_SESSION['session_user_type'] = $Usuario->getTipoDeCuenta( );
00050 return true;
00051 }
00052
00053 return false;
00054
00055 }
00056
00070 public function ValidaSession( ){
00071 if(session_id()=='')
00072 session_start();
00073
00074 if( !isset( $_SESSION['session_user_unique_id'] ) || ( isset( $_SESSION['timeout'] ) && $_SESSION['timeout'] < time( ) ) ){
00075 return false;
00076 }else{
00077 $_SESSION['timeout'] = time( ) + Config::get( 'security/session_timeout' );
00078 return true;
00079 }
00080 }
00081
00088 public function CerrarSession( ){
00089
00090 if(session_id()=="")
00091 session_start();
00092
00093 if( sizeof($_SESSION)!=0 ){
00094 $_SESSION=array();
00095 session_destroy();
00096 }
00097 header( 'Location: /' );
00098 exit( );
00099 }
00100
00117 public function RestablecerClave( $correo, $captcha ){
00118
00119 $Status = '';
00120
00121 if( session_id( ) == '' ) @session_start( );
00122
00123 if( $_SESSION['captcha'] == $captcha ){
00124
00125 $Usuario = new Participante( );
00126
00127 if( !$Usuario->getParticipantePorCorreoElectronico( $correo ) ){
00128 unset( $Usuario );
00129 $Usuario = new Usuario( );
00130 if( !$Usuario->getUsuarioPorCorreoElectronico( $correo ) ){
00131 unset( $Usuario );
00132 return 'EMAIL_NOT_FOUND';
00133 }
00134 }
00135
00136 $nueva_clave = substr( md5( rand(0,999) ), 10, 8 );
00137 $Usuario->cambiarClave( $nueva_clave );
00138
00139 $correo_cuerpo = file_get_contents( $_SERVER['DOCUMENT_ROOT'].'/plantillas/restablecer_clave.html' );
00140
00141 $variables = array(
00142 '%PARTICIPANTE_CORREO%',
00143 '%PARTICIPANTE_CLAVE%',
00144 '%PARTICIPANTE_NOMBRE%'
00145 );
00146 $valores = array(
00147 $Usuario->getCorreoElectronico( ),
00148 $nueva_clave,
00149 $Usuario->getNombreCompleto( )
00150 );
00151
00152 $correo_cuerpo = str_replace( $variables, $valores, $correo_cuerpo );
00153
00154 $success = Utilitario::enviarCorreo( array(
00155 'to' => $correo,
00156 'subject'=>'IESA Feedback Gerencial - Recuperación de cuenta',
00157 'body' => $correo_cuerpo,
00158 'format'=>'text/html'
00159 ) );
00160
00161 if( $success === false )
00162 $Status = 'CONECCTION_ERROR';
00163 else
00164 $Status = 'OK';
00165
00166 }else
00167 $Status = 'BAD_CODE';
00168
00169 return $Status;
00170
00171 }
00172
00182 public function UsuarioActivo( ){
00183
00184 if( session_id( ) == '' )
00185 session_start( );
00186
00187 if( !isset( $_SESSION['session_user_unique_id'] ) )
00188 return NULL;
00189
00190 if( is_null( $this->session_user ) ){
00191 switch( $_SESSION['session_user_type'] ){
00192 case "U":
00193 $this->session_user = new Usuario( $_SESSION['session_user_unique_id'] ); break;
00194 case "P":
00195 $this->session_user = new Participante( $_SESSION['session_user_unique_id'] ); break;
00196 case "D":
00197 $this->session_user = new Profesor( $_SESSION['session_user_unique_id'] ); break;
00198 case "E":
00199 $this->session_user = new Evaluador( $_SESSION['session_user_unique_id'] ); break;
00200 }
00201 }
00202
00203 return $this->session_user;
00204
00205 }
00206
00207 }
00208
00209 ?>