From 1fd00dcf1ce6b92dba83256dc1d763b597165091 Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Tue, 22 Jun 2021 16:48:06 +0200 Subject: [PATCH 1/5] We drop support for the `INI` config backend type with v2.11 --- application/forms/Config/GeneralConfigForm.php | 2 +- library/Icinga/User/Preferences/PreferencesStore.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/forms/Config/GeneralConfigForm.php b/application/forms/Config/GeneralConfigForm.php index cab7500857..57c1a4cbcf 100644 --- a/application/forms/Config/GeneralConfigForm.php +++ b/application/forms/Config/GeneralConfigForm.php @@ -43,7 +43,7 @@ public function onRequest() parent::onRequest(); if ($this->config->getConfigObject()->global->config_backend === 'ini') { - $this->warning('The preferences backend of type INI is deprecated and will be removed with version 2.10'); + $this->warning('The preferences backend of type INI is deprecated and will be removed with version 2.11'); } } } diff --git a/library/Icinga/User/Preferences/PreferencesStore.php b/library/Icinga/User/Preferences/PreferencesStore.php index ad1c51608e..c88cf332d7 100644 --- a/library/Icinga/User/Preferences/PreferencesStore.php +++ b/library/Icinga/User/Preferences/PreferencesStore.php @@ -127,7 +127,7 @@ public static function create(ConfigObject $config, User $user) } if ($type === 'Ini') { - Logger::warning('The preferences backend of type INI is deprecated and will be removed with version 2.10'); + Logger::warning('The preferences backend of type INI is deprecated and will be removed with version 2.11'); $config->location = Config::resolvePath('preferences'); } elseif ($type === 'Db') { $config->connection = new DbConnection(ResourceFactory::getResourceConfig($config->resource)); From 2afb0fc4b95862908494bb5ef3d1e238cd342ce3 Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Tue, 22 Jun 2021 16:48:51 +0200 Subject: [PATCH 2/5] doc: Add upgrade notes for v2.9 --- doc/80-Upgrading.md | 49 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/doc/80-Upgrading.md b/doc/80-Upgrading.md index f0f08258dd..d14ef096d3 100644 --- a/doc/80-Upgrading.md +++ b/doc/80-Upgrading.md @@ -5,6 +5,37 @@ v2.6 to v2.8 requires to follow the instructions for v2.7 too. ## Upgrading to Icinga Web 2 2.9.x +**Installation** + +* Icinga Web 2 now requires the [Icinga PHP Library (ipl)](https://github.com/Icinga/icinga-php-library) (>= 0.6) + and [Icinga PHP Thirdparty](https://github.com/Icinga/icinga-php-thirdparty) (>= 0.10). Please make sure to + install both when upgrading. We provide packages for them and if you've installed Icinga Web 2 already by + package they should be installed automatically during the upgrade. +* [Icinga Business Process Modelling](https://github.com/Icinga/icingaweb2-module-businessprocess/releases/tag/v2.3.1) + has been updated to v2.3.1. If you're using this module, this version is required when upgrading. + +**General** + +* For database connections to the IDO running on MySQL, a default charset (`latin1`) is now applied. + If you had previously problems with special characters and umlauts and you've set this charset + already manually, no change is required. However, if your IDO resource configuration has another + charset configured than this, it is highly recommended to clear this setting. Otherwise the default + won't apply and characters may still be shown incorrectly in the UI. + +**Database Schema** + +* Icinga Web 2 now permits its users to stay logged in. This requires a new database table. + * Please apply the `v2.9.0.sql` upgrade script depending on your database vendor. + In package installations this file can be found in `/usr/share/doc/icingaweb2/schema/*-upgrades/` + +**Breaking changes** + +* Password changes are not allowed by default anymore + * The fake refusal `no-user/password-change` has now been changed to a grant `user/password-change`. + Any user that had `no-user/password-change` previously still cannot change passwords. Though any + user that didn't have this *permission*, needs to be granted `user/password-change` now in order + to change passwords. + **Deprecations** * Support for EOL PHP versions (5.6, 7.0, 7.1 and 7.2) will be removed with version 2.11 @@ -12,6 +43,24 @@ v2.6 to v2.8 requires to follow the instructions for v2.7 too. * New features after v2.9 will already not (necessarily) be available in Internet Explorer * `user.local_name` replaces the `user:local_name` macro in restrictions, and the latter will be removed with version 2.11 +* The configuration backend type `INI` is not configurable anymore. **A database is now mandatory.** + * Existing configurations using this configuration backend type will stop working with the + release of v2.11. + * Note that this only applies to user preferences. Other configurations are still stored + in `.ini` files. (#3770) +* The Vagrant file and all its assets will be removed with version 2.11 + +**Framework changes affecting third-party code** + +* The `jquery-migrate` compatibility layer for Javascript code working with jQuery 2.x has been removed. + It has been introduced with v2.7 when we upgraded jQuery to v3.4.1 in order to allow module developers + a seamless upgrade chance. If a module still has UI glitches after an upgrade to v2.9, please contact + the module developer. +* The method `getHtmlForEvent` of the `EventDetailsExtensionHook` previously received the host or service + object of an event. Now the actual event object is passed to it instead. +* Asset support for modules (#3961) introduced with v2.8 has now been deprecated in favor of library + support (#4272) and will be removed with v2.10. We don't expect broad usage of this feature since + it's been introduced with the latest major version, so it's already being removed with the next one. ## Upgrading to Icinga Web 2 2.8.x From 1f5e4b3e2a4c426200dd9f27ac52ece1d1dc4655 Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Wed, 30 Jun 2021 12:04:49 +0200 Subject: [PATCH 3/5] Update CHANGELOG.md --- CHANGELOG.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f994dfafb0..ce47477305 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,68 @@ Please make sure to always read our [Upgrading](doc/80-Upgrading.md) documentati ## What's New +### What's New in Version 2.9.0 + +You can find all issues related to this release on our [Roadmap](https://github.com/Icinga/icingaweb2/milestone/59?closed=1). + +Please make sure to also check the respective [upgrading section](https://icinga.com/docs/icinga-web-2/latest/doc/80-Upgrading/#upgrading-to-icinga-web-2-29x) +in the documentation. + +This release is accompanied by the minor releases v2.7.5 and v2.8.3 which include the security fixes mentioned below. + +#### Icinga DB + +We continue our endeavour soon. Icinga Web 2 is still a crucial part of it and this update is again required +for Icinga DB. If you like to participate again, don't forget to update Icinga Web 2 as well. + +#### Security Fixes + +This release includes two security related fixes. Both were published as part of a security advisory on Github. +They allow the circumvention of custom variable protection rules and blacklists as well as a path traversal if +the `doc` module is enabled. Please check the respective advisory for details. + +* Custom variable protection and blacklists can be circumvented [GHSA-2xv9-886q-p7xx](https://github.com/Icinga/icingaweb2/security/advisories/GHSA-2xv9-886q-p7xx) +* Possible path traversal by use of the `doc` module [GHSA-cmgc-h4cx-3v43](https://github.com/Icinga/icingaweb2/security/advisories/GHSA-cmgc-h4cx-3v43) + +#### RBAC, The Elephant In Icinga Web 2 + +Role Based Access Control, for the non-initiated. I'll make it short: Permission refusals, Role inheritance, +Privilege Audit. Icinga DB will also solve the long-standing issue [#2455](https://github.com/Icinga/icingaweb2/issues/2455) +and also allows [#3349](https://github.com/Icinga/icingaweb2/issues/3349) and [#3550](https://github.com/Icinga/icingaweb2/issues/3550). +I've also written a blog post about this very topic: https://icinga.com/blog/2021/04/07/web-access-control-redefined/ + +* Authorization enhancements [#4306](https://github.com/Icinga/icingaweb2/pull/4306) +* Audit View [#4336](https://github.com/Icinga/icingaweb2/pull/4336) +* Highlight modules with permissions set inside a role [#4241](https://github.com/Icinga/icingaweb2/issues/4241) + +#### Support for PHP 8 + +PHP 8 is released and with Icinga Web 2.9 it will now (hopefully) work flawlessly. We also took the chance +to prepare to drop the support of some legacy PHP versions. We now require PHP 7.3 at a minimum and all +versions below that will not be supported anymore with the release of v2.11. + +* Support PHP 8 [#4289](https://github.com/Icinga/icingaweb2/pull/4289) +* Raise minimum required PHP version to 7.3 [#4397](https://github.com/Icinga/icingaweb2/pull/4397) + +#### Stay, Be Remembered + +Have you ever been disappointed that Icinga Web 2 always forgets you after closing your browser? This is in +your hands now! Just tick the new checkbox on the login screen and Icinga Web 2 doesn't forget your presence +anymore. Unless of course the administrator or you on a different device clears your session. + +* Implement a "remember me" feature [#2495](https://github.com/Icinga/icingaweb2/issues/2495) + +#### It Does Matter, When + +Browsers are bad when it's about date and time inputs. (I'm looking at you Mozilla!) Now we've given our hopes +up and use a specifically invented solution to show you a date and time picker throughout every browser. With +Icinga v2.13 onwards you will also be able to use this when defining an expiry date for comments! Though, you +might not necessarily use it that often once you've configured new custom defaults for downtime endings. + +* Add datetime picker widget [#4354](https://github.com/Icinga/icingaweb2/pull/4354) +* Expire Option for Comments [#3447](https://github.com/Icinga/icingaweb2/issues/3447) +* Custom defaults for downtime end, comment and duration [#4364](https://github.com/Icinga/icingaweb2/issues/4364) + ### What's New in Version 2.8.2 **Notice**: This is a security release. It is recommended to immediately upgrade to this release. From d214dc0f053f996765767b49ed236865355663c0 Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Wed, 30 Jun 2021 13:35:12 +0200 Subject: [PATCH 4/5] Update AUTHORS --- AUTHORS | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/AUTHORS b/AUTHORS index e3f45d8998..a269a97bef 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,5 +1,6 @@ Aaron Collins Alexander A. Klimov +Alexander Aleksandrovič Klimov Alexander Fuhr Alexander Wirt Andreas Olsson @@ -26,6 +27,7 @@ Christoph Wiechert Constantin Matheis Cornelius Wachinger cstegm +Damiano Chini Daniel Daniel Shirley Davide Bizzarri @@ -56,11 +58,13 @@ Jiri Pejchal Joe Doherty Johannes Meyer Joonas Kylmälä +Jorge Vallecillo Jo Rhett Ken Jungclaus Klaus Jrgensen Lee Clemens Loei Petrus Marogi +log1-c <24474580+log1-c@users.noreply.github.com> Louis Sautier mapa82 Marc DeTrano @@ -71,6 +75,7 @@ Mario Rimann Marius Hein Markus Frosch Markus Opolka +Massimiliano Torromeo Matthias Jentsch Matthias Max Kozlov @@ -99,9 +104,11 @@ Pieter Lexis PunkoIvan Ramy Talal Raphael Bicker +Ravi Kumar Kempapura Srinivasa rbelinsky realitygaps Rene Moser +Rick Henry rkcpi Roland Hopferwieser Rudy Gevaert @@ -111,6 +118,8 @@ Sander Ferdinand sant-swedge Simone Orsi ss23 +sukhwinder33445 <54990055+sukhwinder33445@users.noreply.github.com> +Sukhwinder Dhillon Susanne Vestner-Ludwig Sylph Lin tfylling From f73614be4dd480ab8ecea04498c3f15fb9f1ae9c Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Wed, 30 Jun 2021 13:37:31 +0200 Subject: [PATCH 5/5] Raise version to 2.9.0 --- VERSION | 2 +- library/Icinga/Application/Version.php | 2 +- modules/doc/module.info | 2 +- modules/migrate/module.info | 2 +- modules/monitoring/module.info | 2 +- modules/setup/module.info | 2 +- modules/test/module.info | 2 +- modules/translation/module.info | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/VERSION b/VERSION index f671dd08ef..f367ae3351 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v2.8.2 +v2.9.0 diff --git a/library/Icinga/Application/Version.php b/library/Icinga/Application/Version.php index a863cd4391..436419d53a 100644 --- a/library/Icinga/Application/Version.php +++ b/library/Icinga/Application/Version.php @@ -8,7 +8,7 @@ */ class Version { - const VERSION = '2.8.2'; + const VERSION = '2.9.0'; /** * Get the version of this instance of Icinga Web 2 diff --git a/modules/doc/module.info b/modules/doc/module.info index 5adbceef52..5622f5f8de 100644 --- a/modules/doc/module.info +++ b/modules/doc/module.info @@ -1,4 +1,4 @@ Module: doc -Version: 2.8.2 +Version: 2.9.0 Description: Documentation module Extracts, shows and exports documentation for Icinga Web 2 and its modules. diff --git a/modules/migrate/module.info b/modules/migrate/module.info index ef6e5aa1e2..2be0cbc893 100644 --- a/modules/migrate/module.info +++ b/modules/migrate/module.info @@ -1,5 +1,5 @@ Module: migrate -Version: 2.8.2 +Version: 2.9.0 Description: Migrate module This module was introduced with the domain-aware authentication feature in version 2.5.0. It helps you migrating users and user configurations according to a given domain. diff --git a/modules/monitoring/module.info b/modules/monitoring/module.info index 6d3efdd321..357060d1f0 100644 --- a/modules/monitoring/module.info +++ b/modules/monitoring/module.info @@ -1,5 +1,5 @@ Module: monitoring -Version: 2.8.2 +Version: 2.9.0 Description: Icinga monitoring module IDO accessor and UI for your monitoring. This is the initial instalment for a graphical presentation of Icinga environments. The predecessor of Icinga DB. diff --git a/modules/setup/module.info b/modules/setup/module.info index d7eba92288..2e3f1ab7c5 100644 --- a/modules/setup/module.info +++ b/modules/setup/module.info @@ -1,5 +1,5 @@ Module: setup -Version: 2.8.2 +Version: 2.9.0 Description: Setup module Web based wizard for setting up Icinga Web 2 and its modules. This includes the data backends (e.g. relational database, LDAP), diff --git a/modules/test/module.info b/modules/test/module.info index 4fcfeecd5d..1a572b9bd2 100644 --- a/modules/test/module.info +++ b/modules/test/module.info @@ -1,5 +1,5 @@ Module: test -Version: 2.8.2 +Version: 2.9.0 Description: Translation module This module allows developers to run (unit) tests against Icinga Web 2 and any of its modules. Usually you do not need to enable this. diff --git a/modules/translation/module.info b/modules/translation/module.info index 8dc9467a4e..b782cb608c 100644 --- a/modules/translation/module.info +++ b/modules/translation/module.info @@ -1,5 +1,5 @@ Module: translation -Version: 2.8.2 +Version: 2.9.0 Description: Translation module This module allows developers and translators to translate modules for multiple languages. You do not need this module to run an internationalized web frontend.