Compare commits

...
Author SHA1 Message Date
spacefreak ac9436f99a Merge remote-tracking branch 'upstream/production/cafevdb/stable33' 2026-08-15 20:13:02 +02:00
spacefreak 89a2b9c133 Merge remote-tracking branch 'upstream/production/cafevdb/stable32' 2026-08-15 20:12:28 +02:00
Claus-Justus Heine 4c3a4fe347 Claim to support NC v33 2026-03-03 13:03:20 +01:00
Claus-Justus Heine db5bfeb851 Enable group and user backends separately, based on their individual configurations.
This restores the behaviour of the app before I moved it to the
IBoostrap stuff.

Signed-off-by: Claus-Justus Heine <himself@claus-justus-heine.de>
2025-12-05 11:22:33 +01:00
Claus-Justus Heine 601f7720cf fix(unconfigured): do not enable the backends without a complete configuration.
Signed-off-by: Claus-Justus Heine <himself@claus-justus-heine.de>
2025-12-05 11:01:12 +01:00
Claus-Justus Heine fad85d01e0 DataQuery::connectToDatabase(), throw wenn called with empty configuration rather than producing obscure PHP errors. 2025-12-05 10:45:00 +01:00
Claus-Justus Heine 36ad938942 UserBackend, fix action recursion guard 2025-10-17 17:40:23 +02:00
Claus-Justus Heine 6d769253b8 Fix routes definitions. 2025-09-10 22:04:27 +02:00
Claus-Justus Heine ec7567acc6 Bump max NC version to 32 2025-09-05 22:18:11 +02:00
spacefreak a9f9eaf7a7 AppInfo: add config checks before using backends
Config checks were removed when moving to IBootstrap:
f6bcde7 (Move to IBootstrap initialization and remove the deprecated appinfo/app.php, 2025-04-10)

Due to the missing checks, the Nextcloud log is flooded with error messages (SQL errors) if
the configuration is incomplete. This is also if either only the user or group backend is used.
2025-07-26 21:38:51 +02:00
5 changed files with 71 additions and 59 deletions
+2 -2
View File
@@ -21,8 +21,8 @@
</types>
<category>auth</category>
<dependencies>
<php min-version="8.0"/>
<nextcloud min-version="31" max-version="31"/>
<php min-version="8.4"/>
<nextcloud min-version="31" max-version="33"/>
</dependencies>
<settings>
<admin>\OCA\UserSQL\Settings\Admin</admin>
+8 -8
View File
@@ -2,8 +2,9 @@
/**
* Nextcloud - user_sql
*
* @copyright 2012-2015 Andreas Böhler <dev (at) aboehler (dot) at>
* @copyright 2025 Claus-Justus Heine <himself@claus-justus-heine.de>
* @copyright 2018 Marcin Łojewski <dev@mlojewski.me>
* @copyright 2012-2015 Andreas Böhler <dev (at) aboehler (dot) at>
* @author Marcin Łojewski <dev@mlojewski.me>
*
* This program is free software: you can redistribute it and/or modify
@@ -22,10 +23,8 @@
use OCA\UserSQL\AppInfo\Application;
$application = new Application();
$application->registerRoutes(
$this, [
"routes" => [
$routes = [
'routes' => [
[
"name" => "settings#verifyDbConnection",
"url" => "/settings/db/verify",
@@ -66,6 +65,7 @@ $application->registerRoutes(
"url" => "/settings/crypto/params",
"verb" => "GET"
],
]
]
);
],
];
return $routes;
+6 -2
View File
@@ -2,10 +2,10 @@
/**
* Nextcloud - user_sql
*
* @copyright 2018 Marcin Łojewski <dev@mlojewski.me>
* @author Marcin Łojewski <dev@mlojewski.me>
* @copyright 2025 Claus-Justus Heine <himself@claus-justus-heine.de>
* @author Claus-Justus Heine <himself@claus-justus-heine.de>
* @copyright 2018 Marcin Łojewski <dev@mlojewski.me>
* @author Marcin Łojewski <dev@mlojewski.me>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -63,8 +63,12 @@ class Application extends App implements IBootstrap
IGroupManager $groupManager,
Backend\GroupBackend $groupBackend,
) {
if ($userBackend->isConfigured()) {
$userManager->registerBackend($userBackend);
}
if ($groupBackend->isConfigured()) {
$groupManager->addBackend($groupBackend);
}
});
}
}
+1 -1
View File
@@ -264,7 +264,7 @@ final class UserBackend extends ABackend implements
// avoid recursion as the action may very well call into the UserManager again ...
$actions = $this->actions;
$this->actions = [];
foreach ($this->actions as $action) {
foreach ($actions as $action) {
$action->doAction($user);
}
$this->actions = $actions;
+8
View File
@@ -4,6 +4,8 @@
*
* @copyright 2021 Marcin Łojewski <dev@mlojewski.me>
* @author Marcin Łojewski <dev@mlojewski.me>
* @copyright 2025 Claus-Justus Heine
* @author Claus-Justus Heine <himself@claus-justus-heine.de>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
@@ -21,6 +23,8 @@
namespace OCA\UserSQL\Query;
use UnexpectedValueException;
use Doctrine\DBAL\Driver\Statement;
use Doctrine\DBAL\Exception as DBALException;
use OC\DB\Connection;
@@ -151,6 +155,10 @@ class DataQuery
"driverOptions" => array()
);
if (empty($this->properties[DB::DRIVER])) {
throw new UnexpectedValueException('Attempt to connect without configuration.');
}
if ($this->properties[DB::DRIVER] == 'mysql') {
if ($this->properties[DB::SSL_CA]) {
$parameters["driverOptions"][\PDO::MYSQL_ATTR_SSL_CA] = \OC::$SERVERROOT . '/' . $this->properties[DB::SSL_CA];