Localization & stuff
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace Core\API {
|
||||
|
||||
use Core\Driver\SQL\Condition\Compare;
|
||||
use Core\Objects\Context;
|
||||
|
||||
abstract class ApiKeyAPI extends Request {
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
namespace Core\API {
|
||||
|
||||
use Core\Driver\SQL\Condition\Compare;
|
||||
use Core\Objects\Context;
|
||||
|
||||
abstract class GroupsAPI extends Request {
|
||||
|
||||
@@ -14,6 +14,7 @@ namespace Core\API {
|
||||
namespace Core\API\Language {
|
||||
|
||||
use Core\API\LanguageAPI;
|
||||
use Core\API\Parameter\ArrayType;
|
||||
use Core\API\Parameter\Parameter;
|
||||
use Core\API\Parameter\StringType;
|
||||
use Core\Driver\SQL\Condition\Compare;
|
||||
@@ -105,7 +106,58 @@ namespace Core\API\Language {
|
||||
}
|
||||
|
||||
$this->context->setLanguage($this->language);
|
||||
$this->result["language"] = $this->language->jsonSerialize();
|
||||
return $this->success;
|
||||
}
|
||||
}
|
||||
|
||||
class GetEntries extends LanguageAPI {
|
||||
public function __construct(Context $context, bool $externalCall = false) {
|
||||
parent::__construct($context, $externalCall, [
|
||||
"code" => new StringType("code", 5, true, NULL),
|
||||
"modules" => new ArrayType("modules", Parameter::TYPE_STRING, true, false)
|
||||
]);
|
||||
$this->loginRequired = false;
|
||||
$this->csrfTokenRequired = false;
|
||||
}
|
||||
|
||||
protected function _execute(): bool {
|
||||
$code = $this->getParam("code");
|
||||
if ($code === null) {
|
||||
$code = $this->context->getLanguage()->getCode();
|
||||
}
|
||||
|
||||
if (!preg_match(Language::LANG_CODE_PATTERN, $code)) {
|
||||
return $this->createError("Invalid lang code format: $code");
|
||||
}
|
||||
|
||||
$entries = [];
|
||||
$modulePaths = [];
|
||||
$requestedModules = $this->getParam("modules");
|
||||
foreach ($requestedModules as $module) {
|
||||
if (!preg_match(Language::LANG_MODULE_PATTERN, $module)) {
|
||||
return $this->createError("Invalid module name: $module");
|
||||
}
|
||||
|
||||
$moduleFound = false;
|
||||
foreach (["Site", "Core"] as $baseDir) {
|
||||
$filePath = realpath(implode("/", [$baseDir, "Localization", $code, "$module.php"]));
|
||||
if ($filePath && is_file($filePath)) {
|
||||
$moduleFound = true;
|
||||
$moduleEntries = @include_once $filePath;
|
||||
$entries[$module] = $moduleEntries;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$moduleFound) {
|
||||
return $this->createError("Module not found: $module");
|
||||
}
|
||||
}
|
||||
|
||||
$this->result["code"] = $code;
|
||||
$this->result["entries"] = $entries;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,9 +48,7 @@ namespace Core\API\Mail {
|
||||
use Core\API\Parameter\StringType;
|
||||
use Core\Objects\DatabaseEntity\MailQueueItem;
|
||||
use DateTimeInterface;
|
||||
use Core\Driver\SQL\Column\Column;
|
||||
use Core\Driver\SQL\Condition\Compare;
|
||||
use Core\Driver\SQL\Condition\CondIn;
|
||||
use Core\External\PHPMailer\Exception;
|
||||
use Core\External\PHPMailer\PHPMailer;
|
||||
use Core\Objects\Context;
|
||||
|
||||
@@ -28,7 +28,6 @@ namespace Core\API\Permission {
|
||||
use Core\API\Parameter\StringType;
|
||||
use Core\API\PermissionAPI;
|
||||
use Core\Driver\SQL\Column\Column;
|
||||
use Core\Driver\SQL\Condition\Compare;
|
||||
use Core\Driver\SQL\Condition\CondIn;
|
||||
use Core\Driver\SQL\Condition\CondLike;
|
||||
use Core\Driver\SQL\Condition\CondNot;
|
||||
|
||||
@@ -6,7 +6,6 @@ use DateTime;
|
||||
use Core\Driver\SQL\Condition\Compare;
|
||||
use Core\Driver\SQL\Condition\CondBool;
|
||||
use Core\Objects\Context;
|
||||
use Core\Objects\DatabaseEntity\User;
|
||||
|
||||
class Stats extends Request {
|
||||
|
||||
|
||||
@@ -297,8 +297,8 @@ namespace Core\API\User {
|
||||
$this->result["users"][$userId] = $serialized;
|
||||
}
|
||||
|
||||
$this->result["pageCount"] = intval(ceil($this->userCount / $count));
|
||||
$this->result["totalCount"] = $this->userCount;
|
||||
$this->result["pageCount"] = intval(ceil($userCount / $count));
|
||||
$this->result["totalCount"] = $userCount;
|
||||
} else {
|
||||
return $this->createError("Error fetching users: " . $sql->getLastError());
|
||||
}
|
||||
@@ -1580,4 +1580,33 @@ namespace Core\API\User {
|
||||
return $this->success;
|
||||
}
|
||||
}
|
||||
|
||||
class CheckToken extends UserAPI {
|
||||
|
||||
private ?UserToken $userToken;
|
||||
|
||||
public function __construct($user, $externalCall = false) {
|
||||
parent::__construct($user, $externalCall, array(
|
||||
'token' => new StringType('token', 36),
|
||||
));
|
||||
$this->userToken = null;
|
||||
}
|
||||
|
||||
public function getToken(): ?UserToken {
|
||||
return $this->userToken;
|
||||
}
|
||||
|
||||
public function _execute(): bool {
|
||||
|
||||
$token = $this->getParam('token');
|
||||
$userToken = $this->checkToken($token);
|
||||
if ($userToken === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->userToken = $userToken;
|
||||
$this->result["token"] = $userToken->jsonSerialize();
|
||||
return $this->success;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user