<?php

class Usuarios_model extends Databases {

    function __construct() {
        parent::__construct();
    }

    function login($usuario, $pass) {
        $hash = md5($pass);
        $sql = "SELECT TOP 1 ID, USUARIO, PRIVILEGIOS FROM PNL_USUARIOS WHERE USUARIO='$usuario' and PASS LIKE '$hash' ";

        $data = parent::query($sql);
        if ($data && count($data) > 0) {
            return $data[0];
        } else
            return FALSE;
    }

    public function getUsuarios() {
        $sql = "SELECT * FROM PNL_USUARIOS";
        $data = parent::query($sql);

        if ($data && count($data) > 0) {
            return $data;
        } else
            return FALSE;
    }

    public function getUsuario($id, $pass = '') {
        if ($pass) {
            $pass = " AND PASS LIKE '" . md5($pass) . "'";
        }

        $sql = "SELECT TOP 1 * FROM PNL_USUARIOS WHERE ID=$id $pass";
        $data = parent::query($sql);

        if ($data && count($data) > 0) {
            return $data[0];
        } else
            return FALSE;
    }

    public function getUsuarioByName($usuario) {
        $sql = "SELECT TOP 1 * FROM PNL_USUARIOS WHERE USUARIO='$usuario'";
        $data = parent::query($sql);

        if ($data && count($data) > 0) {
            return $data[0];
        } else
            return FALSE;
    }

    public function updateUsuario($id, $datos) {
        $datos['PRIVILEGIOS'] = implode('|', $datos['PRIVILEGIOS']);
        if ($datos['PASS']) {
            $datos['PASS'] = md5($datos['PASS']);
        } else {
            unset($datos['PASS']);
        }

        if ($id) {
            if (parent::update('PNL_USUARIOS', $datos, 'ID=' . $id)) {
                return TRUE;
            }
        } else {
            if (parent::insert('PNL_USUARIOS', $datos)) {
                return TRUE;
            }
        }

        return FALSE;
    }

    public function updatePass($id, $pass) {

        if (parent::update('PNL_USUARIOS', array('PASS' => md5($pass)), 'ID=' . $id)) {
            return TRUE;
        }

        return FALSE;
    }

}
