servnest/sftpgo-auth.php

42 lines
946 B
PHP
Raw Normal View History

2022-05-19 16:59:32 +02:00
<?php
require 'router.php';
2022-05-19 16:59:32 +02:00
2023-03-09 14:40:26 +01:00
function deny() {
http_response_code(403);
exit();
}
if (CONF['common']['services']['ht'] !== 'enabled')
deny();
2022-11-26 21:45:48 +01:00
$auth_data = json_decode(file_get_contents('php://input'), true);
2022-05-19 16:59:32 +02:00
$username = hashUsername($auth_data['username']);
2022-11-26 21:45:48 +01:00
2023-03-09 14:40:26 +01:00
if (usernameExists($username) !== true)
deny();
2023-03-18 18:38:27 +01:00
if (!in_array('ht', explode(',', query('select', 'users', ['username' => $username], 'services')[0]), true))
deny();
$id = query('select', 'users', ['username' => $username], 'id')[0];
2023-03-09 14:40:26 +01:00
if (checkPassword($id, $auth_data['password']) !== true)
deny();
echo '
{
"status": 1,
"username": ' . json_encode($auth_data['username']) . ',
"home_dir": "' . CONF['ht']['ht_path'] . '/' . $id . '",
"quota_size": ' . ((query('select', 'users', ['id' => $id], 'type')[0] === 'approved') ? CONF['ht']['user_quota_approved'] : CONF['ht']['user_quota_testing']) . ',
"permissions": {
"/": [
"*"
]
2022-06-28 22:08:34 +02:00
}
2022-05-19 16:59:32 +02:00
}
2023-03-09 14:40:26 +01:00
';
http_response_code(200);