+ Добавлена авторизация как отдельная страница
+ Небольшие исправления в JS при ответе от сервера
This commit is contained in:
Alexander Zhirov 2023-06-05 19:48:33 +03:00
parent 639118f781
commit e74c0a1af0
11 changed files with 283 additions and 40 deletions

View file

@ -15,13 +15,16 @@ import std.array;
import verinfo;
import pgdb;
import structures;
import response;
import requests.numbers;
import requests.sms;
import requests.ussd;
import requests.server;
import requests.authorization;
static ServerInfo serverInfo;
static AuthData serverAuthData;
private void showVersion() {
writefln("daster версия %s, собрано %s", getDasterVersion(), __DATE__);
@ -32,8 +35,9 @@ void page404(HTTPServerRequest req, HTTPServerResponse res, HTTPServerErrorInfo
}
int main(string[] args) {
log.level(log.INFORMATION);
log.output(log.SYSLOG);
log.level(log.INFORMATION)
.output(log.SYSLOG)
.color(true);
bool flagVersion;
string flagSettings;
@ -88,6 +92,7 @@ int main(string[] args) {
if (webHost.logfile.length) log.file(webHost.logfile);
rcAsteriskDB();
rcAuth();
auto router = new URLRouter;
router.post("/", &postReq);
@ -144,16 +149,15 @@ void startWebServer(WebHost wh, HTTPServerSettings http, HTTPServerSettings http
}
void getReq(HTTPServerRequest req, HTTPServerResponse res) {
// if (req.session) {
// auto user = req.session.get!UserData("userData");
// if (user.loggedIn) {
// renderMainPage(req, res);
// return;
// }
// }
if (req.session) {
auto user = req.session.get!UserData("user");
if (user.login) {
renderMainPage(req, res);
return;
}
}
// render!("index.dt", serverInfo)(res);
renderMainPage(req, res);
render!("authorization.dt", serverInfo)(res);
}
void renderMainPage(HTTPServerRequest req, HTTPServerResponse res) {
@ -168,23 +172,23 @@ void postReq(HTTPServerRequest req, HTTPServerResponse res) {
if (query.empty) return;
// if (query != "authorization" && !checkAuth(req)) {
// res.send(
// true,
// "Сессия не существует. Перезагрузите страницу"
// );
// return;
// }
if (query != "login" && !checkAuth(req)) {
res.send(
true,
"Сессия не существует. Перезагрузите страницу"
);
return;
}
log.d("json request: " ~ jsr.to!string);
switch (query) {
// case "authorization":
// authorization(req, res);
// break;
// case "logout":
// logout(req, res);
// break;
case "login":
login(req, res, serverAuthData);
break;
case "logout":
logout(req, res);
break;
case "listnumbergroups":
getListNumberGroups(req, res);
break;
@ -441,3 +445,24 @@ WebHost rcWebHost() {
return wh;
}
void rcAuth() {
ConfigSection auth;
try {
auth = rc[]["auth"];
} catch (Exception e) {
log.c("В конфигурационном файле не верны настройки auth");
exit(1);
}
if (auth["login"].empty)
log.w("Логин не был установлен - auth.login");
else
serverAuthData.login = auth["login"];
if (auth["password"].empty)
log.w("Пароль не был установлен - auth.password");
else
serverAuthData.password = auth["password"];
}