Removed obsolete files
This commit is contained in:
parent
4045de5ef3
commit
01f0bff142
5 changed files with 0 additions and 454 deletions
11
auth/.gitignore
vendored
11
auth/.gitignore
vendored
|
@ -1,11 +0,0 @@
|
|||
#Nope :)
|
||||
certs/
|
||||
|
||||
#A local link just for browsing the files
|
||||
xf/
|
||||
|
||||
css/**/*.css
|
||||
css/**/*.css.map
|
||||
|
||||
js/**/*.js
|
||||
js/**/*.js.map
|
250
auth/auth.php
250
auth/auth.php
|
@ -1,250 +0,0 @@
|
|||
<?php
|
||||
$GLOBALS["COOKIE_NAME_USER_DATA"] = "user_data";
|
||||
$GLOBALS["COOKIE_NAME_USER_SIGN"] = "user_sign";
|
||||
|
||||
$host = gethostname();
|
||||
$localhost = false;
|
||||
if($host == "WolverinDEV")
|
||||
$localhost = true;
|
||||
|
||||
function authPath() {
|
||||
if (file_exists("auth")) {
|
||||
return "auth/";
|
||||
} else return "";
|
||||
}
|
||||
|
||||
function mainPath() {
|
||||
global $localhost;
|
||||
if ($localhost) {
|
||||
return "../";
|
||||
} else return "";
|
||||
}
|
||||
|
||||
function remoteAddress()
|
||||
{
|
||||
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
|
||||
$ip = $_SERVER['HTTP_CLIENT_IP'];
|
||||
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
||||
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
} else {
|
||||
$ip = $_SERVER['REMOTE_ADDR'];
|
||||
}
|
||||
return $ip;
|
||||
}
|
||||
|
||||
/** @return \XF\App */
|
||||
function getXF()
|
||||
{
|
||||
if (isset($GLOBALS["XF_APP"])) return $GLOBALS["XF_APP"];
|
||||
|
||||
if (file_exists("/var/www/forum.teaspeak"))
|
||||
$dir = "/var/www/forum.teaspeak";
|
||||
else if (file_exists(__DIR__ . "/xf"))
|
||||
$dir = __DIR__ . "/xf";
|
||||
else if (file_exists(__DIR__ . "/auth/xf"))
|
||||
$dir = __DIR__ . "/auth/xf";
|
||||
else
|
||||
return null;
|
||||
|
||||
require($dir . '/src/XF.php');
|
||||
|
||||
XF::start($dir);
|
||||
return ($GLOBALS["XF_APP"] = XF::setupApp('XF\Pub\App'));
|
||||
}
|
||||
|
||||
function milliseconds()
|
||||
{
|
||||
$mt = explode(' ', microtime());
|
||||
return ((int)$mt[1]) * 1000 + ((int)round($mt[0] * 1000));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $username
|
||||
* @param $password
|
||||
* @return array
|
||||
*/
|
||||
function checkLogin($username, $password) {
|
||||
$allowedXFGroups = [
|
||||
3, //Administrator
|
||||
6, //Web tester
|
||||
5 //Premium
|
||||
];
|
||||
$app = getXF();
|
||||
|
||||
$response = [];
|
||||
$response["success"] = false;
|
||||
if(!$app) goto _return;
|
||||
|
||||
if (!isset($username) || !isset($password)) {
|
||||
$response["msg"] = "missing credentials";
|
||||
goto _return;
|
||||
}
|
||||
|
||||
/** @var \XF\Service\User\Login $loginService */
|
||||
$loginService = $app->service('XF:User\Login', $username, "");
|
||||
if (!$loginService->isLoginLimited()) {
|
||||
$error = "";
|
||||
$user = $loginService->validate($password, $error);
|
||||
if ($user) {
|
||||
$response["success"] = true;
|
||||
$allowed = false;
|
||||
foreach ($allowedXFGroups as $id) {
|
||||
foreach ($user->secondary_group_ids as $assigned)
|
||||
if ($assigned == $id) {
|
||||
$allowed = true;
|
||||
break;
|
||||
}
|
||||
$allowed |= $user->user_group_id == $id;
|
||||
if ($allowed) break;
|
||||
}
|
||||
if ($allowed) {
|
||||
$response["allowed"] = true;
|
||||
|
||||
try {
|
||||
/** @var $session XF\Session\Session */
|
||||
$session = $app->session();
|
||||
if (!$session->exists()) {
|
||||
$session->expunge();
|
||||
if (!$session->start(remoteAddress())) {
|
||||
$response["success"] = false;
|
||||
$response["msg"] = "could not create session";
|
||||
goto _return;
|
||||
}
|
||||
}
|
||||
$session->changeUser($user);
|
||||
$session->save();
|
||||
$response["sessionName"] = $session->getCookieName();
|
||||
$response["sessionId"] = $session->getSessionId();
|
||||
$response["user_name"] = $user->username;
|
||||
} catch (Exception $error) {
|
||||
$response["success"] = false;
|
||||
$response["msg"] = $error->getMessage();
|
||||
}
|
||||
goto _return;
|
||||
} else {
|
||||
$response["allowed"] = false;
|
||||
}
|
||||
} else {
|
||||
$response["msg"] = $error;
|
||||
}
|
||||
} else {
|
||||
$response["msg"] = "Too many login's!";
|
||||
}
|
||||
|
||||
_return:
|
||||
return $response;
|
||||
}
|
||||
|
||||
function logged_in() {
|
||||
return test_session() == 0;
|
||||
}
|
||||
|
||||
function logout()
|
||||
{
|
||||
$app = getXF();
|
||||
if(!$app) return false;
|
||||
|
||||
$session = $app->session();
|
||||
$session->expunge();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param null $sessionId
|
||||
* @return int 0 = Success | 1 = Invalid coocie | 2 = invalid session
|
||||
*/
|
||||
function test_session($sessionId = null) {
|
||||
$app = getXF();
|
||||
if(!$app) return -1;
|
||||
|
||||
if(!isset($sessionId)) {
|
||||
if (!isset($_COOKIE[$app->session()->getCookieName()]))
|
||||
return 1;
|
||||
$sessionId = $_COOKIE[$app->session()->getCookieName()];
|
||||
}
|
||||
$app->session()->expunge();
|
||||
if (!$app->session()->start(remoteAddress(), $sessionId) || !$app->session()->exists())
|
||||
return 2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
function redirectOnInvalidSession() {
|
||||
$app = getXF();
|
||||
if(!$app) return;
|
||||
|
||||
$status = test_session();
|
||||
if ($status != 0) {
|
||||
$type = "undefined";
|
||||
switch ($status) {
|
||||
case 1:
|
||||
$type = "nocookie";
|
||||
break;
|
||||
case 2:
|
||||
$type = "expired";
|
||||
break;
|
||||
default:
|
||||
$type = "unknown";
|
||||
break;
|
||||
}
|
||||
header('Location: ' . authPath() . 'login.php?error=' . $type);
|
||||
setcookie($app->session()->getCookieName(), "", 1);
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
||||
function setup_forum_auth() {
|
||||
getXF(); /* Initialize XF */
|
||||
}
|
||||
|
||||
if(!defined("_AUTH_API_ONLY")) {
|
||||
$app = getXF();
|
||||
if(!$app) {
|
||||
die("failed to start app");
|
||||
}
|
||||
|
||||
if (isset($_GET["type"])) {
|
||||
error_log("Got authX request!");
|
||||
if ($_GET["type"] == "login") {
|
||||
die(json_encode(checkLogin($_POST["user"], $_POST["pass"])));
|
||||
} else if ($_GET["type"] == "logout") {
|
||||
logout();
|
||||
global $localhost;
|
||||
if($localhost)
|
||||
header("Location: login.php");
|
||||
else
|
||||
header("Location: https://web.teaspeak.de/");
|
||||
|
||||
$session = $app->session();
|
||||
setcookie($session->getCookieName(), '', time() - 3600, '/');
|
||||
setcookie("session", '', time() - 3600, '/');
|
||||
setcookie("user_data", '', time() - 3600, '/');
|
||||
setcookie("user_sign", '', time() - 3600, '/');
|
||||
} else die("unknown type!");
|
||||
} else if(isset($_POST["action"])) {
|
||||
error_log("Got auth post request!");
|
||||
if($_POST["action"] === "login") {
|
||||
die(json_encode(checkLogin($_POST["user"], $_POST["pass"])));
|
||||
} else if ($_POST["action"] === "logout") {
|
||||
logout();
|
||||
die(json_encode([
|
||||
"success" => true
|
||||
]));
|
||||
} else if($_POST["action"] === "validate") {
|
||||
$app = getXF();
|
||||
if(test_session($_POST["token"]) === 0)
|
||||
die(json_encode([
|
||||
"success" => true,
|
||||
"token" => $app->session()->getSessionId()
|
||||
]));
|
||||
else
|
||||
die(json_encode([
|
||||
"success" => false
|
||||
]));
|
||||
} else
|
||||
die(json_encode([
|
||||
"success" => false,
|
||||
"msg" => "Invalid action"
|
||||
]));
|
||||
}
|
||||
}
|
|
@ -1,80 +0,0 @@
|
|||
body{
|
||||
padding:0;
|
||||
margin:0;
|
||||
}
|
||||
.inner {
|
||||
position: absolute;
|
||||
}
|
||||
.inner-container{
|
||||
width:400px;
|
||||
height:400px;
|
||||
position:absolute;
|
||||
top:calc(50vh - 200px);
|
||||
left:calc(50vw - 200px);
|
||||
overflow:hidden;
|
||||
}
|
||||
.box{
|
||||
position:absolute;
|
||||
height:100%;
|
||||
width:100%;
|
||||
font-family:Helvetica;
|
||||
color:#fff;
|
||||
background:rgba(0,0,0,0.13);
|
||||
padding:30px 0px;
|
||||
text-align: center;
|
||||
}
|
||||
.box h1{
|
||||
text-align:center;
|
||||
margin:30px 0;
|
||||
font-size:30px;
|
||||
}
|
||||
.box input{
|
||||
display:block;
|
||||
width:300px;
|
||||
margin:20px auto;
|
||||
padding:15px;
|
||||
background:rgba(0,0,0,0.2);
|
||||
color:#fff;
|
||||
border:0;
|
||||
}
|
||||
.box input:focus,.box input:active,.box button:focus,.box button:active{
|
||||
outline:none;
|
||||
}
|
||||
.box button {
|
||||
background:#742ECC;
|
||||
border:0;
|
||||
color:#fff;
|
||||
padding:10px;
|
||||
font-size:20px;
|
||||
width:330px;
|
||||
margin:20px auto;
|
||||
display:block;
|
||||
cursor:pointer;
|
||||
}
|
||||
.box button:disabled {
|
||||
background:rgba(0,0,0,0.2);
|
||||
}
|
||||
.box button:active{
|
||||
background:#27ae60;
|
||||
}
|
||||
.box p{
|
||||
font-size:14px;
|
||||
text-align:center;
|
||||
}
|
||||
.box p span{
|
||||
cursor:pointer;
|
||||
color:#666;
|
||||
}
|
||||
|
||||
.box .error {
|
||||
color: darkred;
|
||||
display: none;
|
||||
}
|
||||
|
||||
#login {
|
||||
display: block;
|
||||
}
|
||||
#success {
|
||||
margin-top: 50px;
|
||||
display: none;
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
const btn_login = $("#btn_login");
|
||||
|
||||
btn_login.on('click', () => {
|
||||
btn_login
|
||||
.prop("disabled", true)
|
||||
.empty()
|
||||
.append($(document.createElement("i")).addClass("fa fa-circle-o-notch fa-spin"));
|
||||
submitLogin($("#user").val() as string, $("#pass").val() as string);
|
||||
});
|
||||
|
||||
function submitLogin(user: string, pass: string) {
|
||||
$.ajax({
|
||||
url: "auth.php?type=login",
|
||||
type: "POST",
|
||||
cache: false,
|
||||
data: {
|
||||
user: user,
|
||||
pass: pass
|
||||
},
|
||||
success: (result: string) => {
|
||||
setTimeout(() => {
|
||||
let data;
|
||||
try {
|
||||
data = JSON.parse(result);
|
||||
} catch (e) {
|
||||
loginFailed("Invalid response: " + result);
|
||||
return;
|
||||
}
|
||||
if (data["success"] == false) {
|
||||
loginFailed(data["msg"]);
|
||||
return;
|
||||
}
|
||||
if (data["allowed"] == false) {
|
||||
loginFailed("You're not allowed for the closed beta!");
|
||||
return;
|
||||
}
|
||||
$("#login").hide(500);
|
||||
$("#success").show(500);
|
||||
|
||||
document.cookie = data["sessionName"] + "=" + data["sessionId"] + ";path=/";
|
||||
document.cookie = data["cookie_name_data"] + "=" + data["user_data"] + ";path=/";
|
||||
document.cookie = data["cookie_name_sign"] + "=" + data["user_sign"] + ";path=/";
|
||||
console.log(result);
|
||||
|
||||
setTimeout(() => {
|
||||
window.location.href = btn_login.attr("target");
|
||||
}, 1000 + Math.random() % 1500);
|
||||
}, 500 + Math.random() % 500);
|
||||
},
|
||||
error: function (xhr,status,error) {
|
||||
loginFailed("Invalid request (" + status + ") => " + error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function loginFailed(err: string = "") {
|
||||
btn_login
|
||||
.prop("disabled", false)
|
||||
.empty()
|
||||
.append($(document.createElement("a")).text("Login"));
|
||||
|
||||
let errTag = $(".box .error");
|
||||
if(err !== "") {
|
||||
errTag.text(err).show(500);
|
||||
} else errTag.hide(500);
|
||||
}
|
||||
|
||||
//<i class="fa fa-circle-o-notch fa-spin" id="login-loader"></i>
|
||||
|
||||
$("#user").on('keydown', event => {
|
||||
if(event.key == "Enter") $("#pass").focus();
|
||||
});
|
||||
|
||||
$("#pass").on('keydown', event => {
|
||||
if(event.key == "Enter") $("#btn_login").trigger("click");
|
||||
});
|
|
@ -1,37 +0,0 @@
|
|||
<?php
|
||||
include_once('auth.php');
|
||||
|
||||
$session = test_session();
|
||||
if($session == 0) {
|
||||
header('Location: ' . mainPath() . 'index.php');
|
||||
die();
|
||||
}
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" href="css/auth.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="inner-container">
|
||||
<div class="box">
|
||||
<h1>Login</h1>
|
||||
<div id="login">
|
||||
<a class="error">some error code</a>
|
||||
<input type="text" placeholder="Username" id="user"/>
|
||||
<input type="password" placeholder="Password" id="pass"/>
|
||||
<button id="btn_login" target="<?php echo mainPath() . "index.php"; ?>">Login</button>
|
||||
<p>Create a account on <a href="//forum.teaspeak.de">forum.teaspeak.de</a></p>
|
||||
</div>
|
||||
<div id="success">
|
||||
<a> Successful logged in!</a><br>
|
||||
<a>You will be redirected in 3 seconds</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="js/auth.js"></script>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Reference in a new issue