HEX
Server: Apache
System: Linux www3.pit.tblive.com 5.14.0-687.38.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Aug 12 17:19:12 EDT 2026 x86_64
User: awaldron (1020)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/awaldron/_accomods/_apibak/auth.php
<?php

include('helpers.php');
include('cors.php');

$action = $_GET['action'];

if ($_SERVER['REQUEST_METHOD'] == 'GET') {

// Create connection
    $db = new mysqli('localhost', 'awaldron_accomods', '$7FuE1MuvBp', 'awaldron_accomods');
    if ($db->connect_errno) {
        $data = ['success' => false, 'error' => $db->connect_error];
        header('Content-Type: application/json');
        echo json_encode($data);
        exit();
    }

// AUTHENTICATE *****************************************************************/
    if ($action == 'login') {
        $u = filter_var($_GET['u'], FILTER_VALIDATE_EMAIL);
        $p = $_GET['p'];
        $sql = "SELECT id, uuid, email, fname, lname, access, expires FROM users WHERE email='" . $u . "' AND pass='" . md5($p) . "'";
        $result = $db->query($sql);

        if ($result->num_rows > 0) {
            $user = $result->fetch_assoc();
            $expires = str_replace('-', '', $user['expires']);
            $today = date('Ymd');

            if ($user['access']==1 && ($today <= $expires)) {
                $login = json_decode(backdoor_login());
                $data = [
                    'success' => true,
                    'access_token' => 'Ebp/iVQK1EOxtCuecMBxKQ==aNr0ihK0R0emRCdY30thfA==', 			//$login->access_token,
                    'isCustomer' => true,
                    'organization' => 'accomods',
                    'token_type' => 'bearer',
                    'userId' => $login->userId,
                    'userName' => $u,
                    'access' => $user['access'],
                    'expires' => $user['expires']
                ];
            } else if ($user['access']==0) {
                $data = ['success' => false, 'msg' => 'this account has been disabled'];
            } else if ($today > $expires) {
                $data = ['success' => false, 'msg' => 'this school license has expired'];
            } else {
                $data = ['success' => false];
            }

        } else {
            $data = ['success' => false];
        }
    }


// BACKDOOR AUTHENTICATION ******************************************************/
    if ($action == 'bd') {
//    $data = backdoor_login();
//
//    header('Content-Type: application/json');
//    echo $data;
        exit;
    }


// REGISTER *****************************************************************/
    if ($action == 'reg') {

        $email = filter_var($_GET['email'], FILTER_VALIDATE_EMAIL);
        $fname = filter_var($_GET['fname'], FILTER_SANITIZE_STRING);
        $lname = filter_var($_GET['lname'], FILTER_SANITIZE_STRING);
        $school = filter_var($_GET['school'], FILTER_SANITIZE_STRING);
        $code = filter_var($_GET['code'], FILTER_SANITIZE_STRING);
        $phone = filter_var($_GET['phone'], FILTER_SANITIZE_STRING);
        $pw = md5($_GET['pw']);
        $expires = date('Y-m-d', strtotime('+1 years'));

        if ($_GET['type'] === 'district') {
            $sql = "SELECT expires FROM users WHERE school_code='".$code."' LIMIT 0,1";
            $result = $db->query($sql);

            if ($result->num_rows > 0) {
                $row = $result->fetch_assoc();
                $expires = $row['expires'];
            }
        }

        $sql = "INSERT INTO users (`uuid`, `email`, `fname`, `lname`, `pass`, `ptxt`, `phone`, `school_code`, `school_name`, `expires`) VALUES (";
        $sql .= "'',";
        $sql .= "'" . $email . "',";
        $sql .= "'" . $fname . "',";
        $sql .= "'" . $lname . "',";
        $sql .= "'" . $pw . "',";
        $sql .= "'',";
        $sql .= "'" . $phone . "',";
        $sql .= "'" . $code . "',";
        $sql .= "'" . $school . "',";
        $sql .= "'" . $expires . "'";
        $sql .= ")";

        if ($result = $db->query($sql)) {
            $login = json_decode(backdoor_login());

            $data = [
                'success' => true,
                'access_token' => $login->access_token,
                'isCustomer' => true,
                'organization' => 'accomods',
                'token_type' => 'bearer',
                'userId' => $login->userId,
                'userName' => $email
            ];

        } else {
            $data = ['success' => false, 'error' => $db->error];
        }

    }


// UPDATE PASSWORD *****************************************************************/
    if ($action == 'updatepw') {
        $u = $_GET['u'];
        $p = $_GET['p'];
        $p1 = $_GET['p1'];
        $p2 = $_GET['p2'];

        if ($p1 === $p2) {
            $sql = "SELECT id, uuid, email, fname, lname FROM users WHERE email='" . $u . "' AND pass='" . md5($p) . "'";
            $userOk = $db->query($sql);

            if ($userOk->num_rows > 0) {
                $upd = $db->query("UPDATE users SET pass='" . md5($p1) . "', ptxt='' WHERE email='" . $u . "'");
                if ($upd === true) {
                    $data = ['success' => true, 'debug' => $userOk->num_rows];
                } else {
                    $data = ['success' => false, 'error' => 'Update failed.', 'debug' => $userOk->num_rows];
                }

            } else {
                $data = ['success' => false, 'error' => 'No matching user found.', 'debug' => $userOk->num_rows, 'data' => $_GET];
            }
        } else {
            $data = ['success' => false, 'error' => 'Passwords do not match.'];
        }
    }


// GET PROFILE ************************************************************************/
    if ($action == 'profile') {
        $u = filter_var($_GET['u'], FILTER_VALIDATE_EMAIL);
        $sql = "SELECT id, uuid, email, fname, lname, school_code, school_name FROM users WHERE email='" . $u . "'";
        $result = $db->query($sql);

        if ($result->num_rows > 0) {
            $user = $result->fetch_assoc();
            $login = json_decode(backdoor_login());

            $data = [
                'success' => true,
                'profile' => [
                    'Id' => $login->userId,
                    'PictureUrl' => '/static/img/avatars/default.png',
                    'Name' => [
                        'First' => $user['fname'],
                        'Middle' => '',
                        'Last' => $user['lname']
                    ],
                    'EmailAddress' => $u,
                    'Addresses' => null,
                    'IsExternalCreatingUserSettings' => null,
                    'Attributes' => null,
                    'School' => [
                        'Name' => $user['school_name'],
                        'Code' => $user['school_code'],
                        'Personnel' => null
                    ]

                ]
            ];

            // GET DISTRICT ASSOCIATES
            if (strlen($user['school_code']) > 0 && $user['school_code'] !== 'INDIVIDUAL_ACCOUNT') {
                $sql2 = "SELECT email, fname, lname FROM users WHERE school_code='".$user['school_code']."' AND id <> ".$user['id']." ORDER BY lname ASC, fname ASC";
                $res2 = $db->query($sql2);

                $associates = [];
                while ($assoc = $res2->fetch_assoc()) {
                    $associates[] = [
                        'First' => $assoc['fname'],
                        'Last' => $assoc['lname'],
                        'Email' => $assoc['email']
                    ];
                }
                $data['profile']['School']['Personnel'] = $associates;
            }

        } else {
            $data = ['success' => false, 'error' => 'No matching users.'];
        }
    }

    mysqli_close($db);
    header('Content-Type: application/json');
    echo json_encode($data);
}
else {
    $data = ['success' => false, 'error' => 'Bad request'];
    header('Content-Type: application/json');
    echo json_encode($data);
}