He decidido, poco a poco, ir haciendo cositas en POO... asiq, como resultado de eso, y del uso de Slim, Paris, e Idiorm, me he creado una clase "Users" para manejar los usuarios... o almenos, lo básico (crear, loguear, autentificar).
Y la verdad, yo creo q está bien hecha (en cuanto a POO, sé que queda aún validación!)
Asiq, si no es mucha molestia, la pongo aqui, y si veis algo mal hecho en POO, decídmelo!
Código PHP:
   <?php
 
class Users extends Model {
    
    private $_islog = false;
    
    public function getUser($dni) {
        return $this->factory('Users')->where('dni', $dni)->find_one();
    }
    
    public function logout() {
        //Borramos las cookies
        setcookie('login','');
    setcookie('rol','');
        setcookie('user', '');
        //El mismo borrará los datos de la sesion al recargar la pag!
    
    //session_unset();
    }
    
    public function islog() {
        return $this->_islog;
    }
    
    //Método para loguear en el sistema
    public function login($dni, $pass) {
        $user = $this->getUser($dni);
        if(!$user) return false; //No existe el usuario!
        if(md5($pass) == $user->pass) {
            $cook = $user->dni;
            $cook.= $user->pass;
            $rol = $user->rol;
            $cookie=md5($cook.$_SERVER["REMOTE_ADDR"].$rol.'pAlABRAmagica');
            setcookie('login',$cookie);
            setcookie('user',$user->dni);
            setcookie('rol',$rol);
            
            return $this->getUser($dni);
        }
        else return false;
                
    }
    
    //Método para, con dos valores de las cookies, comprobar si es correcto!
    public function auth($dni, $login) {
        
        $userN = Model::factory('Users')->where_equal('dni', $dni)->find_one(); //->where_equal('pass', $pass)
        if( $userN ) { //Exists
            
            if(isset($_COOKIE['rol'])) $rol = $_COOKIE['rol'];
            else $rol = '';
            $cookie = md5($dni.$userN->pass.$_SERVER["REMOTE_ADDR"].$rol.'pAlABRAmagica');
            if($cookie == $login) {
                $this->cloneU($userN);
                $this->_islog = true;
                return true;
                
                }
            else {
                $this->logout();
                return false;
            }
        }
        else {
            $this->logout();
            return false;
        }
    }
    
    private function cloneU($u) {
        $this->dni = $u->dni;
        $this->id = $u->id;
        $this->pass = $u->pass;
        $this->control = $u->control;
        $this->rol = $u->rol;
        $this->email = $u->email;
        $this->apellidos = $u->apellidos;
        $this->nombre = $u->nombre;
        
    }
   
    public function register($nombre, $apellidos, $pass, $mail, $dni ) {
        
        //Se carga otra instancia, pq sino sobreescribiria la que está activa y logueada... y eso NO interesa :)
        $u = Model::factory('Users')->create();
        
        $u->nombre = $nombre;
        $u->apellidos = $apellidos;
        $u->pass = md5($pass);
        $u->email = $mail;
        $u->dni = $dni;
        $u->rol = 'user';
        
        
        return $u->save();
    }
    
}    
 

