- Started WIP on firewall

This commit is contained in:
Dave M. 2023-12-04 12:32:25 -05:00
parent 55f5071475
commit fd51903a8a
7 changed files with 89 additions and 5 deletions

View File

@ -26,6 +26,7 @@ class Console {
new FormHandler($request, $git = new Form\Update\Git(getenv('PROJECT_PATH')));
$status = iterator_to_array($git->run("/usr/bin/git status -s"));
$diff = iterator_to_array($git->run("/usr/bin/git diff"));
return $this->renderView("lean-console/page/update/index", get_defined_vars());
}

View File

@ -0,0 +1,31 @@
<?php
namespace Lean\Console\Entity\Firewall;
use Ulmus\Attribute\Obj\Table;
use Ulmus\Attribute\Property\Field;
use Ulmus\Entity\Field\Datetime;
#[Table(name:"firewall_banned_ips", adapter: "lean.console")]
class BannedIp implements \JsonSerializable
{
use \Ulmus\EntityTrait;
#[Field\Id]
public string $id;
#[Field\ForeignKey(name: "connection_id")]
public ? int $connectionId;
#[Field(length: 12)]
public ? string $ipv4;
#[Field(length: 40)]
public ? string $ipv6;
#[Field\Datetime(name: "banned_until")]
public Datetime $bannedUntil;
#[Field\Datetime(name: "created_at")]
public Datetime $createdAt;
}

View File

@ -15,17 +15,17 @@ class Connection implements \JsonSerializable
public string $id;
#[Field(length: 12)]
public string $ipv4;
public ? string $ipv4;
#[Field(length: 40)]
public string $ipv6;
public ? string $ipv6;
#[Field]
public bool $success;
#[Field(length: 255)]
#[Field(length: 255, name: "error_message")]
public ? string $errorMessage;
#[Field\Datetime]
#[Field\Datetime(name: "created_at")]
public Datetime $createdAt;
}

View File

@ -73,7 +73,7 @@ class DatabaseMigration implements FormInterface
if ( $alter->count() ) {
if ( $adapter->splitAlterQuery() ) {
$query = $alter->map(fn(Lib\Database\Definition $map) => $entity::repository()
->alterSqlQuery([$map->toArray()])
->alterSqlQuery([ $map->toArray() ])
->getSqlQuery(true));
}
else {

View File

@ -0,0 +1,27 @@
<?php
namespace Ulmus\User\Middleware;
use Psr\Http\{
Message\ResponseInterface,
Message\ServerRequestInterface,
Server\MiddlewareInterface,
Server\RequestHandlerInterface
};
use Ulmus\User\Entity\UserInterface;
use Ulmus\User\Authorize\HeaderAuthentication;
class HeaderAuthenticationMiddleware implements MiddlewareInterface
{
protected HeaderAuthentication $authenticator;
public function __construct() {
}
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
return $handler->handle($request);
}
}

View File

@ -12,4 +12,15 @@
<section>
<article>Welcome into your Lean Console section. Select the appropriate menu item from the sidebar.</article>
</section>
<section style="margin-top:1rem;">
<article>
<div>Firewall</div>
<br>
<b>@todo</b>
<u>latest 50 connections</u>
<u>banned users / IP !</u>
<u>fail2ban integration</u>
</article>
</section>
{% endsection %}

View File

@ -20,6 +20,20 @@
<code style="white-space:normal;font-size:120%">
{% foreach $status as $line %}
<div>
{% if $line %}
{{ $line }}
{% endif %}
</div>
{% endforeach %}
</code>
</div>
<div class="git-diff" style="margin-top:2rem">
<strong style="display:block;margin-bottom:7px">'git diff' output</strong>
<code style="white-space:normal;font-size:120%">
{% foreach $diff as $line %}
<div>
{% if $line %}
{{ $line }}