Estoy intentando hacer un login. Hay distintos tipos de usuarios que pueden logearse y dependiendo si es administrador, operario, administrativo, etc podra realizar una tarea u otra.
Lo que habia pensado es, tener una clase Usuarios (entre otros metodos, todos van a tener un metodo login, otro logout y otro obtener tipo de usuario), luego una clase para administrador, otra para operario y administrativo con sus atributos y metodos correspondientes heredando de la clase Usuarios.
En la clase usuario estoy haciendo el login (ya que nose quien esta intentando logearse, si es admin, operario o administrativo), de modo que lo que primero que haria es consultar si el mail y pass son correctos y despues con otro metodo obtendria que tipo de usuario es.
Si obtengo que es administrador instancio la clase administrador, si es operario instancio operario y sino administrativo. Supongamos que se loguea un administrador, aqui es donde no me cierran las cosas porque en teoria ya instancie la clase padre (al hacer login instancie usuario para acceder a su metodo) y ahora voy a estar intentando instanciar administrador quien a su vez va a instanciar la clase padre usuarios.... creo que hay algo que no estoy teniendo en cuenta. Como resolverian esto?
La clase usuario es mas o menos como sigue:
Código PHP:
require_once 'DB.class.php';
class Usuarios {
protected $db;
private $email;
private $pass;
/* Se obtiene la conexion con la DB */
protected function __construct() {
$this->db = DB::getInstance();
}
/* Se setea el email */
protected function setEmail($email) {
$this->email = mysql_real_escape_string($email);
}
/* Se setea el pass */
protected function setPass($pass) {
$this->pass = mysql_real_escape_string($pass);
}
/* Se obtiene el email */
protected function getEmail() {
return $this->email;
}
/* Se obtiene el pass */
protected function getPass() {
return $this->pass;
}
protected function __destruct() {
return true;
}
/* Funcion para verificar el login a la aplicacion, si el login es correcto devuelve true y sino false */
protected function loginUser() {
$query = sprintf("select * from usuarios where email = '%s' and pass = '%s' and estado='A'", $this->email, $this->pass);
if ($this->db->existRow($query))
return true;
return false;
}
}
Gracias