Your IP : 216.73.217.6


Current Path : /home/smartconb/www/armencom33/acv2026/classes/
Upload File :
Current File : /home/smartconb/www/armencom33/acv2026/classes/User.class.php

<?php
/**
 * User: zaven
 * Date: 04.06.2018
 * Time: 17:43
 * Project: cnpa_mail
 **/

class User
{
    private $type = UserType::SiteGuest;
    private $id = -1;
    private $language_id = -1;
    private $language_abbr = '';
    private $displayName = '';
    private $data = array();


    /**
     * User constructor.
     * @param array $args
     */
    function __construct(Array $args = array())
    {
        foreach ($args as $key => $val) {
            if (property_exists($this, $key))
                $this->$key = $val;
        }
        /*
                if ($this->id > 0) {
                    switch ($this->type) {
                        case UserType::SiteSuperUser:
                            $this->userObject = SiteSuperUser::getById($this->id);
                            break;
                        default:
                            $this->userObject = SiteUser::getById($this->id);
                    }
                    $this->id = $this->userObject->getId();
                    $this->type = $this->userObject->getType();
                    $this->data = $this->userObject->getData();
                }
        */
    }

    public static function getByUsernamePassword($username, $password)
    {
        $sql = "SELECT admin_id as id FROM #__admin WHERE admin_username='" . db_real_escape_string($username) . "' AND admin_passwd='" . db_real_escape_string(md5($password)) . "'";
        $result = db_query($sql);
        if ($result !== false && db_num_rows($result) > 0) {
            $row = db_fetch_assoc($result);
            $row['type'] = UserType::SiteSuperUser;
            $row['displayName'] = TX_USER_ADMIN;

            $row['language_id'] = getData('language', 'language_id', 'language_default', '1');
            $row['language_abbr'] = getData('language', 'language_abbr', 'language_default', '1');

            return new User($row);
        } else {
            $row = array();
            $sql = "SELECT user_id AS id, user_firstname, user_lastname, language_id FROM #__user WHERE " .
                "user_mail='" . db_real_escape_string($username) . "' AND user_password='" . db_real_escape_string(md5($password)) . "' ";
            $result = db_query($sql);
            if ($result !== false && db_num_rows($result) > 0) {
                $row = db_fetch_assoc($result);


                $userRow = array(
                    'id' => $row['id'],
                    'type' => UserType::SiteUser,
                    'language_id' => $row['language_id'],
                    'language_abbr' => getData('language', 'language_abbr', 'language_id', $row['language_id']),
                    'data' => array(),
                );
                $tmpName = trim($row['user_firstname'] . ' ' . $row['user_lastname']);
                if ($tmpName != '') {
                    $userRow['displayName'] = $tmpName;
                } else {
                    $userRow['displayName'] = $username;
                }
                $userRow['type'] = UserType::SiteUser;

                $userRow['data'] = $row;

                return new User($userRow);
            } else {
                return null;
            }


            //$row['type'] = UserType::SiteSuperUser;
            //return new User($row);

        }
    }

    /**
     * @return string
     */
    public function getType()
    {
        return $this->type;
    }

    /**
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @return array
     */
    public function getData()
    {
        return $this->data;
    }


    /**
     * @return string
     */
    public function getDisplayName()
    {
        return $this->displayName;
    }

    /**
     * @return int
     */
    public function getLanguageId()
    {
        return $this->language_id;
    }

    /**
     * @return string
     */
    public function getLanguageAbbr()
    {
        return $this->language_abbr;
    }


}