several bugfixes
This commit is contained in:
parent
72d2850e83
commit
a238ad3b7f
@ -29,6 +29,7 @@ namespace Core\API\Logs {
|
|||||||
use Core\Objects\DatabaseEntity\Group;
|
use Core\Objects\DatabaseEntity\Group;
|
||||||
use Core\Objects\DatabaseEntity\SystemLog;
|
use Core\Objects\DatabaseEntity\SystemLog;
|
||||||
|
|
||||||
|
// TODO: how to handle pagination here for log entries stored in files?
|
||||||
class Get extends LogsAPI {
|
class Get extends LogsAPI {
|
||||||
|
|
||||||
use Pagination;
|
use Pagination;
|
||||||
|
@ -585,4 +585,9 @@ abstract class Request {
|
|||||||
|
|
||||||
return $classes;
|
return $classes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function logUserId(): string {
|
||||||
|
$currentUser = $this->context->getUser();
|
||||||
|
return $currentUser ? "userId='" . $currentUser->getId() . "'" : "SYSTEM";
|
||||||
|
}
|
||||||
}
|
}
|
@ -185,7 +185,6 @@ namespace Core\API\User {
|
|||||||
$groups = [];
|
$groups = [];
|
||||||
$sql = $this->context->getSQL();
|
$sql = $this->context->getSQL();
|
||||||
$currentUser = $this->context->getUser();
|
$currentUser = $this->context->getUser();
|
||||||
$currentUserId = $currentUser->getId();
|
|
||||||
|
|
||||||
$requestedGroups = array_unique($this->getParam("groups"));
|
$requestedGroups = array_unique($this->getParam("groups"));
|
||||||
if (!empty($requestedGroups)) {
|
if (!empty($requestedGroups)) {
|
||||||
@ -193,8 +192,10 @@ namespace Core\API\User {
|
|||||||
foreach ($requestedGroups as $groupId) {
|
foreach ($requestedGroups as $groupId) {
|
||||||
if (!isset($availableGroups[$groupId])) {
|
if (!isset($availableGroups[$groupId])) {
|
||||||
return $this->createError("Group with id=$groupId does not exist.");
|
return $this->createError("Group with id=$groupId does not exist.");
|
||||||
} else if ($groupId === Group::ADMIN && !$currentUser->hasGroup(Group::ADMIN)) {
|
} else if ($this->externalCall && $groupId === Group::ADMIN && !$currentUser->hasGroup(Group::ADMIN)) {
|
||||||
return $this->createError("You cannot create users with administrator groups.");
|
return $this->createError("You cannot create users with administrator groups.");
|
||||||
|
} else {
|
||||||
|
$groups[] = $groupId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -205,7 +206,7 @@ namespace Core\API\User {
|
|||||||
if ($user !== false) {
|
if ($user !== false) {
|
||||||
$this->user = $user;
|
$this->user = $user;
|
||||||
$this->result["userId"] = $user->getId();
|
$this->result["userId"] = $user->getId();
|
||||||
$this->logger->info("A new user with username='$username' and email='$email' was created by userId='$currentUserId'");
|
$this->logger->info("A new user with username='$username' and email='$email' was created by " . $this->logUserId());
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->success;
|
return $this->success;
|
||||||
@ -354,7 +355,7 @@ namespace Core\API\User {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static function getDefaultACL(Insert $insert): void {
|
public static function getDefaultACL(Insert $insert): void {
|
||||||
$insert->addRow(self::getEndpoint(), "Allows users to search other users", [Group::ADMIN, Group::SUPPORT], true);
|
$insert->addRow(self::getEndpoint(), [Group::ADMIN, Group::SUPPORT], "Allows users to search other users", true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -433,8 +434,7 @@ namespace Core\API\User {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$currentUserId = $this->context->getUser()->getId();
|
$this->logger->info("A new user with username='$username' and email='$email' was invited by " . $this->logUserId());
|
||||||
$this->logger->info("A new user with username='$username' and email='$email' was invited by userId='$currentUserId'");
|
|
||||||
|
|
||||||
// Create Token
|
// Create Token
|
||||||
$token = generateRandomString(36);
|
$token = generateRandomString(36);
|
||||||
|
@ -85,7 +85,7 @@ class Settings {
|
|||||||
|
|
||||||
public static function loadDefaults(): Settings {
|
public static function loadDefaults(): Settings {
|
||||||
$protocol = getProtocol();
|
$protocol = getProtocol();
|
||||||
$hostname = getHostName();
|
$hostname = getCurrentHostName();
|
||||||
$settings = new Settings();
|
$settings = new Settings();
|
||||||
|
|
||||||
// General
|
// General
|
||||||
|
@ -33,6 +33,11 @@ I actually don't know what i want to implement here. There are quite to many CMS
|
|||||||
1. `docker-compose build`
|
1. `docker-compose build`
|
||||||
2. `docker-compose up`
|
2. `docker-compose up`
|
||||||
3. Open the webapp in your browser and follow the installation guide
|
3. Open the webapp in your browser and follow the installation guide
|
||||||
|
3a. Since the docker runs as user www-data (33), the following permissions are recommended and at least necessary for the installation process:
|
||||||
|
```
|
||||||
|
chown -R :33 .
|
||||||
|
chmod -R 775 .
|
||||||
|
```
|
||||||
|
|
||||||
### Afterwards
|
### Afterwards
|
||||||
|
|
||||||
|
2
cli.php
2
cli.php
@ -959,7 +959,7 @@ $registeredCommands = [
|
|||||||
"mail" => ["handler" => "onMail", "description" => "send mails and process the pipeline", "requiresDocker" => true],
|
"mail" => ["handler" => "onMail", "description" => "send mails and process the pipeline", "requiresDocker" => true],
|
||||||
"settings" => ["handler" => "onSettings", "description" => "change and view settings"],
|
"settings" => ["handler" => "onSettings", "description" => "change and view settings"],
|
||||||
"impersonate" => ["handler" => "onImpersonate", "description" => "create a session and print cookies and csrf tokens", "requiresDocker" => true],
|
"impersonate" => ["handler" => "onImpersonate", "description" => "create a session and print cookies and csrf tokens", "requiresDocker" => true],
|
||||||
"frontend" => ["handler" => "onFrontend", "description" => "build and manage frontend modules"],
|
"frontend" => ["handler" => "onFrontend", "description" => "build and manage frontend modules", "requiresDocker" => true],
|
||||||
"api" => ["handler" => "onAPI", "description" => "view and create API endpoints"],
|
"api" => ["handler" => "onAPI", "description" => "view and create API endpoints"],
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ RUN mkdir -p /usr/local/etc/php/extra/ && \
|
|||||||
curl -s "https://browscap.org/stream?q=Full_PHP_BrowsCapINI" -o /usr/local/etc/php/extra/browscap.ini
|
curl -s "https://browscap.org/stream?q=Full_PHP_BrowsCapINI" -o /usr/local/etc/php/extra/browscap.ini
|
||||||
|
|
||||||
# NodeJS
|
# NodeJS
|
||||||
RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - && \
|
RUN curl -sL https://deb.nodesource.com/setup_21.x | bash - && \
|
||||||
apt-get update && \
|
apt-get update && \
|
||||||
apt-get -y install nodejs && \
|
apt-get -y install nodejs && \
|
||||||
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null && \
|
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null && \
|
||||||
|
@ -9,7 +9,7 @@ import {CircularProgress} from "@mui/material";
|
|||||||
const StatBox = (props) => <div className={"col-lg-3 col-6"}>
|
const StatBox = (props) => <div className={"col-lg-3 col-6"}>
|
||||||
<div className={"small-box bg-" + props.color}>
|
<div className={"small-box bg-" + props.color}>
|
||||||
<div className={"inner"}>
|
<div className={"inner"}>
|
||||||
{props.count ?
|
{!isNaN(props.count) ?
|
||||||
<>
|
<>
|
||||||
<h3>{props.count}</h3>
|
<h3>{props.count}</h3>
|
||||||
<p>{props.text}</p>
|
<p>{props.text}</p>
|
||||||
|
Loading…
Reference in New Issue
Block a user