first commit

This commit is contained in:
pgmr3
2023-12-22 17:21:31 +01:00
commit dde03b1d27
57 changed files with 6287 additions and 0 deletions

150
index.html Normal file
View File

@@ -0,0 +1,150 @@
<!DOCTYPE html>
<html lang="de">
<head>
<!--
// ------------------------------------------------------------------------------
//
// © Copyright (с) 2023 License: GPLv3 https://www.gnu.org/licenses/gpl-3.0.txt
// author: https://github.com/pgmr3
// ------------------------------------------------------------------------------
-->
<meta charset="utf-8">
<title>Server tools</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="https://github.com/pgmr3">
<meta name="copyright" content="https://www.gnu.org/licenses/gpl-3.0.html" />
<script src="https://dsm.pgmr2.com/webman/sso/synoSSO-1.0.0.js"></script>
</head>
<body>
<div class="container">
<div class="form-signin">
<h1 class="form-signin-heading">Server tools</h1>
<h2 class="form-signin-heading" >Please sign in / sign out / menu</h2>
<button id="login-button" >SSO sign in</button>
<button id="logout-button">sign out</button>
<button id="anwendung-button" onclick="window.location.href = '/my/'" >menu</button>
</div>
</div>
</body>
<script src="../js/myLoginScript.js" type="text/javascript"></script>
<script>
// globals
var $token = "";
var Xlogedin = true;
Visibility(false, false); //default für Sichtbarkeit der Anzeigeelemente
//Visibility(true, true); //test alle buttons anzeigen
//synology SSO server init
SYNOSSO.init({
oauthserver_url: 'https://dsm.pgmr2.com', //synology server with sso and dsm
app_id: 'eb3df56d6f3f11914eb6514c978346f1', // App ID
redirect_uri: 'https://sso.pgmr2.com', //redirect URI not realy used
// ldap_baseDN: 'dc=sso-domain,dc=com', //necessary if more than one domain in the ldap
// domain_name: 'sso-domain.com', //necessary if more than one domain in the ldap
callback: authCallback
})
//sso Login execute callback
function authCallback(response){
console.log("authCallback Start");
const logedin = false;
if('not_login' === response.status) { //user not login
console.log (response.status);
}
else if('login' === response.status) {
console.log (response.status);
console.log (response.access_token);
//alert("access_token: "+ response.access_token);//test
$token = response.access_token; //Pass sso_accesstoken for doTestLogedin()
doTestLogedin(onComplete, $token);
}
else {
console.log (response);
}
}
//sign in button
var login_button = document.getElementById("login-button");
login_button.addEventListener('click' , SYNOSSO.login);
// sign out event function is triggert
var myEventLogOut = function() {
//alert("myEventLogOut start");//test
console.log("myEventLogOut");
SYNOSSO.logout({
callback: logoutCallback
});
//alert("myEventLogOut 2");//Test
// since there is no response from SSYNOSSO.logout the following comes
//let Xin =
doTestLogedin(onComplete ,null ,$startLogout=true).then ((data) => {
//console.log(data); //hier undefined, da asyncron
//alert("myEventLogOut fetch response json in console");//test
})
.catch(console.log);
//Visibility(!Xin, Xin);
//window.location.href = ("/"); // clear history not
window.location.replace("/"); // clear history
};
//callback von SYNOSSO.logout - will NOT fire!
function logoutCallback(response){
console.log("logoutCallback");
if(response) {
console.log (response);
//alert("logout resonse in console");
logedin = false;
}
}
//logout button
var logout_button = document.getElementById("logout-button");
if(logout_button !== null) logout_button.addEventListener('click' , myEventLogOut, false);
//menu button
var menu_button = document.getElementById("menu-button");
if(menu_button !== null) menu_button.addEventListener('click' , myEventMenu, false);
var myEventMenu= function() {
//alert("menu 2");//Test
window.location.replace("/my/");
}
//Visibility of the buttons
function Visibility(login=false, logout=false) {
var logout;
var login;
if (logout) {
document.getElementById("login-button").style.visibility = "visible";
} else {
document.getElementById("login-button").style.visibility = "hidden";
}
if (login){
document.getElementById("logout-button").style.visibility = "visible";
document.getElementById("anwendung-button").style.visibility = "visible";
} else {
document.getElementById("logout-button").style.visibility = "hidden";
document.getElementById("anwendung-button").style.visibility = "hidden";
}
}
//callback doTestLogedin()
function onComplete(logedin){ // When the check loggedin completes, do this
console.log("loggedin: "+ logedin);
Visibility(logedin, !logedin);
Xlogedin = logedin; //global
//alert(logedin);//test
}
//Session expired? query cyclically
window.setInterval(function () {
if (Xlogedin) {
doTestLogedin(onComplete);
}
}, 1000); //milli seconds
</script>