Bugfix, Document constructor, docker

This commit is contained in:
2022-06-01 12:28:50 +02:00
parent 366dbbd6cf
commit ce3aa574ea
19 changed files with 159 additions and 83 deletions

View File

@@ -4,12 +4,12 @@
namespace Documents;
use Elements\TemplateDocument;
use Objects\User;
use Objects\Router\Router;
class Account extends TemplateDocument {
public function __construct(User $user, string $templateName) {
parent::__construct($user, $templateName);
public function __construct(Router $router, string $templateName) {
parent::__construct($router, $templateName);
$this->enableCSP();
}
@@ -34,13 +34,13 @@ class Account extends TemplateDocument {
}
}
} else if ($this->getTemplateName() === "account/register.twig") {
$settings = $this->user->getConfiguration()->getSettings();
if ($this->user->isLoggedIn()) {
$settings = $this->getSettings();
if ($this->getUser()->isLoggedIn()) {
$this->createError("You are already logged in.");
} else if (!$settings->isRegistrationAllowed()) {
$this->createError("Registration is not enabled on this website.");
}
} else if ($this->getTemplateName() === "account/login.twig" && $this->user->isLoggedIn()) {
} else if ($this->getTemplateName() === "account/login.twig" && $this->getUser()->isLoggedIn()) {
header("Location: /admin");
exit();
} else if ($this->getTemplateName() === "account/accept_invite.twig") {

View File

@@ -3,13 +3,14 @@
namespace Documents;
use Elements\TemplateDocument;
use Objects\User;
use Objects\Router\Router;
class Admin extends TemplateDocument {
public function __construct(User $user) {
public function __construct(Router $router) {
$user = $router->getUser();
$template = $user->isLoggedIn() ? "admin.twig" : "redirect.twig";
$params = $user->isLoggedIn() ? [] : ["url" => "/login"];
parent::__construct($user, $template, $params);
parent::__construct($router, $template, $params);
$this->enableCSP();
}
}

View File

@@ -0,0 +1,26 @@
<?php
namespace Documents;
use Elements\EmptyHead;
use Elements\HtmlDocument;
use Elements\SimpleBody;
use Objects\Router\Router;
class Info extends HtmlDocument {
public function __construct(Router $router) {
parent::__construct($router, EmptyHead::class, InfoBody::class);
}
}
class InfoBody extends SimpleBody {
protected function getContent(): string {
$user = $this->getDocument()->getUser();
if ($user->isLoggedIn() && $user->hasGroup(USER_GROUP_ADMIN)) {
phpinfo();
} else {
$message = "You are not logged in or do not have the proper privileges to access this page.";
return $this->getDocument()->getRouter()->returnStatusCode(403, [ "message" => $message] );
}
}
}

View File

@@ -5,10 +5,11 @@ namespace Documents {
use Documents\Install\InstallBody;
use Documents\Install\InstallHead;
use Elements\HtmlDocument;
use Objects\Router\Router;
class Install extends HtmlDocument {
public function __construct($user) {
parent::__construct($user, InstallHead::class, InstallBody::class);
public function __construct(Router $router) {
parent::__construct($router, InstallHead::class, InstallBody::class);
$this->databaseRequired = false;
}
}