added superexpert mode

This commit is contained in:
Frank Schubert
2024-03-07 15:33:59 +01:00
parent 39478b9fb9
commit 2df2ca22a1
6 changed files with 269 additions and 8 deletions

View File

@@ -109,8 +109,7 @@ class UserController extends mfBaseController
{
}
protected function saveAction()
{
$r = $this->request;
@@ -342,4 +341,75 @@ class UserController extends mfBaseController
return $me->isAdmin();
}
protected function apiAction() {
if(!$this->me->is(["Admin"])) {
$this->redirect("Dashboard");
}
$do = $this->request->do;
$data = [];
switch($do) {
case "sse":
$return = $this->startSuperexpertApi();
break;
case "ese":
$return = $this->extendSuperexpertApi();
break;
case "endse":
$return = $this->endSuperexpertApi();
break;
default:
$return = false;
}
if(!is_array($return) || !count($return)) {
$data = ["status" => "error"];
$this->returnJson($data);
}
$data['status'] = "OK";
$data['result'] = $return;
$this->returnJson($data);
}
private function startSuperexpertApi() {
$me = new User();
$me->loadMe();
if($me->superexpertEnabled() ) {
// superexpert mode started already
return false;
}
$me->superexpertStart(1800);
return ["valid_to" => $me->getFlag("superexpert_lock_date")->value()];
}
private function extendSuperexpertApi() {
$me = new User();
$me->loadMe();
if(!$me->superexpertEnabled() ) {
// superexpert mode must be started already
$this->log->debug("se not started");
return false;
}
$this->log->debug("ese");
$me->superexpertExtend(1800);
return ["valid_to" => $me->getFlag("superexpert_lock_date")->value()];
}
private function endSuperexpertApi() {
$me = new User();
$me->loadMe();
if($me->superexpertEnabled() ) {
$me->superexpertStop();
}
return ["valid_to" => null];
}
}