Commit Graph

863 Commits

Author SHA1 Message Date
Yonas Habteab bcdad8c9b3 MigrationManager: Enhance how pgsql privileges are checked
For mysql it's just enough to check whether the privileges are granted
at database or table label, but for PostgreSQL it's necessary that the
privileges are granted at database and at table level.
2023-10-26 17:07:17 +02:00
Yonas Habteab a99f685d15 Add missing pgsql `USAGE` privilege 2023-10-26 17:07:17 +02:00
Johannes Meyer 21d631ad7e Raise version to 2.12.0 2023-09-21 16:35:31 +02:00
Yonas Habteab c3eef5f607 DbMigrationHook: Pad matching groups to the desired length before using them 2023-09-20 15:35:39 +02:00
Johannes Meyer 9c6d930e17 MigrationManager: Also check table privileges 2023-09-19 14:37:55 +02:00
Yonas Habteab 167ff54947 Enhance logging 2023-09-19 14:37:55 +02:00
Yonas Habteab 47b214ee1b Use `PDO::fetchColumn()` where applicable 2023-09-19 14:37:55 +02:00
Yonas Habteab 2505e79a2d DbMigration: Check for mysql collation name whether to check 2.11 is migrated 2023-09-19 14:37:55 +02:00
Yonas Habteab dc738ec4ce `DbMigrationHook`: Adjust regex pattern & add missing argument docs 2023-09-19 14:37:55 +02:00
Yonas Habteab 96a6321569 DbMigration: Adjust usage of `Database::getDb()` 2023-09-19 14:37:55 +02:00
Yonas Habteab fac3855a86 DbMigrationStep: Don't cache sql statements unnecessarily 2023-09-19 14:37:55 +02:00
Yonas Habteab 26cae8b882 Rename `MigrationHook` -> `DbMigrationHook` 2023-09-19 14:37:55 +02:00
Yonas Habteab ce89d4a7cb Rename `Common\DbMigration` -> `DbMigrationStep` 2023-09-19 14:37:55 +02:00
Yonas Habteab 2657f032dc Allow to automatically fix missing grants & elevalte database users
Co-authored-by: Johannes Meyer
2023-09-19 14:37:55 +02:00
Yonas Habteab ac24c6d34b Don't traverse schema query if the last successfully migrated version is found 2023-09-19 14:37:55 +02:00
Yonas Habteab 73b1041816 Fix phpstan claims & php code sniffer errors 2023-09-19 14:37:55 +02:00
Yonas Habteab 13569a34b7 Check explicitly for `false` before raising an unknown error 2023-09-19 14:37:55 +02:00
Yonas Habteab 4b2784f85e Use `Icinga Web` as a component name 2023-09-19 14:37:55 +02:00
Yonas Habteab 2944ceaa52 Rename `getSchemaQueryFor()` & drop `$version` param 2023-09-19 14:37:55 +02:00
Yonas Habteab ce012dcdb2 Hook: Don't abort loading remaining hooks due to one broken hook
`Hook::all()` shouldn't abort loading the remaining hooks when one of
the provided hook is broken.
2023-09-19 14:37:55 +02:00
Yonas Habteab 15792fb59a Provide `DbMigration` hook & register when bootstrapping 2023-09-19 14:37:55 +02:00
Yonas Habteab 81c9e5cfc5 Introduce `MigrationManager` class 2023-09-19 14:37:55 +02:00
Yonas Habteab babc59437f Introduce base `MigrationHook` class & helpers 2023-09-19 14:37:54 +02:00
Eric Lippmann b693369412 Fix class in `Platform::hasOracleSupport()` 2023-09-07 08:51:22 +02:00
Johannes Meyer c027282d8c Test: Load a module's composer autoloader 2023-08-31 10:18:37 +02:00
raviks789 33b6c01fe2 Create fake session to write csp nonces to it
`Csp::createnonces()` writes to a window aware session and hence a fake base session
is created in `BaseTestCase::setUp()` method
2023-08-28 16:56:51 +02:00
Sukhwinder Dhillon ee9d139a3a PhpDoc: Fix incorrect `@param` and `@return` type hints 2023-08-23 10:53:15 +02:00
Sukhwinder Dhillon a88d0fe348 Web: Method `hasAccessToSharedNavigationItem()` requires param #2 of type Config 2023-08-23 10:53:14 +02:00
Sukhwinder Dhillon e3036c41a2 Web: Add `$accessibleMenuItems` explicitly as non-dynamic property 2023-08-23 10:53:14 +02:00
Sukhwinder Dhillon 391eede52f StderrWriter::log(): Fix `Variable '$color' is probably undefined` 2023-08-23 10:53:14 +02:00
Sukhwinder Dhillon 8358dc1c5e Hook::has(): Method expects only one parameter 2023-08-23 10:53:14 +02:00
Sukhwinder Dhillon a0ed272cb8 ApplicationBootstrap: Fix method name case 2023-08-23 10:53:14 +02:00
raviks789 58938f6636 `Config`: Import exception `NotWritableError` 2023-08-23 10:53:13 +02:00
raviks789 1b9d977da4 `Config`: Fix parameter type for `$fromDisk` of method `module()` 2023-08-23 10:53:13 +02:00
raviks789 11c7f913c8 `Benchmark`: Define parameter `$what` as nullable 2023-08-23 10:53:13 +02:00
raviks789 dd8875f99f `ConfigFormEventsHook`: Use `self` to access static property `$lastErrors` 2023-08-23 10:53:13 +02:00
raviks789 2265b9d27b `LegacyWeb`: Import `Exception` class 2023-08-23 10:53:13 +02:00
raviks789 1c0480d484 `Module`: Use correct name case for `Web::getFrontController()` method 2023-08-23 10:53:13 +02:00
Alexander A. Klimov 6de4bd6e7e Explicitly add Module#configdir as (non-dynamic) property
W/o this the login page, if on PHP 8.2, says:

Deprecated: Creation of dynamic property Icinga\Application\Modules\Module::$configdir is deprecated in /usr/share/icingaweb2/library/Icinga/Application/Modules/Module.php on line 264

This breaks modules (if any) which use the property and not the getter.
2023-08-23 10:53:13 +02:00
Johannes Meyer 65b3006adf Check if `\Throwable` instead of `\Exception`..
..everywhere else...

fixes #5079
2023-08-10 14:12:06 +02:00
raviks789 8a17c56345 Remove requiring vendor dependencies
Also avoid autoloading vendor.
2023-08-09 15:16:16 +02:00
Johannes Meyer 597cb5c94d tests: Use a real app for bootstrapping
Makes the tests less isolated, but streamlines
the autoloading and other stuff in a way that's
more maintainable than before.
2023-07-05 09:24:49 +02:00
Johannes Meyer e7adc06497 ApplicationBootstrap: Process `ICINGAWEB_MODULES_DIR` by default 2023-07-04 16:08:41 +02:00
Johannes Meyer 693bed1710 Raise version to 2.11.4 2023-01-26 09:42:18 +01:00
Johannes Meyer 8837fea7a4 Libraries: Only attempt a partial match if the library name contains a slash
fixes #4971
2023-01-12 09:54:42 +01:00
Johannes Meyer d0a83a646c Release version 2.11.3 2022-12-14 13:21:01 +01:00
Johannes Meyer 6ef968bb96 Raise version to v2.11.2 2022-11-04 12:14:40 +01:00
Johannes Meyer 225d43b45f Release version 2.11.1 2022-07-06 14:48:48 +02:00
Sukhwinder Dhillon f0f2835708 Module: Don't pass null as param to `class_exists()` 2022-07-05 15:42:15 +02:00
Johannes Meyer dcf194bc4c Raise version to 2.11.0 2022-06-30 13:47:07 +02:00