Commit Graph

4050 Commits

Author SHA1 Message Date
Florian Strohmaier 24c1bb1f8c IcingaCheckbox: Add `hidden attribute to input element
refs #4310
2021-05-25 17:09:51 +02:00
Eric Lippmann 68acf12407
Remember me (#4112)
Co-authored-by: Sukhwinder Dhillon <sukhwinder.dhillon@icinga.com>
2021-05-21 15:43:06 +02:00
Johannes Meyer 162d898d42 js: Introduce `DatetimePicker` behavior
Utilizes `flatpickr` from ipl-web.
2021-05-17 13:20:42 +02:00
Johannes Meyer a87f15c861 Auth: Reload entire layout if the locale changes 2021-05-17 13:20:42 +02:00
Johannes Meyer 0da4a11d91
Merge pull request #4355 from Icinga/health-endpoint
Health endpoint
2021-05-17 13:11:51 +02:00
Johannes Meyer cb4e6011f3 js: Remove jquery-migrate 2021-05-17 10:44:27 +02:00
Johannes Meyer 0d2bf1ae33 Menu: Integrate health endpoint 2021-05-14 15:45:35 +02:00
Johannes Meyer 5e382dcfa9 Introduce health endpoint /health[/checks] 2021-05-14 15:45:35 +02:00
Johannes Meyer 197f42557a Markdown: Allow to pass purifier config and provide a default 2021-04-27 13:17:44 +02:00
Johannes Meyer 5f8704e635 Introduce class `Icinga\Web\Helper\Markdown\LinkTransformer` 2021-04-27 13:17:44 +02:00
Johannes Meyer 065915397a zend: PHP 8 compatiblity changes
`ReflectionClass::newInstanceArgs()` seems to respect string keys
since PHP 8.

refs #4289
2021-04-14 10:51:38 +02:00
Johannes Meyer d9a87f76a2 AdmissionLoader: Optimize role loading 2021-04-14 10:11:19 +02:00
Johannes Meyer 384d9535a9 ArrayDatasource: Sort result first and then apply limit+offset 2021-04-12 15:42:20 +02:00
Bas Couwenberg dc7a8c8d8b
Update JShrink for PHP 8 support. (#4298)
refs #4287
2021-04-09 14:45:17 +02:00
Johannes Meyer e671324ddb tests: Don't use deprecated assertion `assertRegExp()` 2021-04-09 12:38:43 +02:00
Johannes Meyer bc1c967dec BaseTestCase: Inherit from `Mockery\Adapter\Phpunit\MockeryTestCase` 2021-04-09 12:38:43 +02:00
Johannes Meyer cb87190138 tests: Add `:void` return type declarations 2021-04-09 12:38:43 +02:00
Alexander A. Klimov eff10ec613 ApplicationBootstrap#setupErrorHandling(): migrate error handler to PHP 8
... as recommended here:
https://www.php.net/manual/de/migration80.incompatible.php

refs #4287
2021-04-09 12:37:03 +02:00
Johannes Meyer 0d35a1774d SingleValueSearchControl: Add failure message for empty results 2021-04-07 15:59:03 +02:00
Johannes Meyer a6507daaaf SingleValueSearchControl: Allow to pass html as labels 2021-04-07 15:58:25 +02:00
Johannes Meyer 314ec5256c PrivilegeAudit: Show missing initiators in inheritance paths 2021-04-07 14:30:14 +02:00
Johannes Meyer b5334a063e PrivilegeAudit: Show missing restrictions if only parents restrict 2021-04-07 14:30:14 +02:00
Johannes Meyer 698e7bcfa4 SingleValueSearchControl: Show magnifier icon in the text input 2021-04-07 14:30:14 +02:00
Johannes Meyer 074f08db4e Introduce view `Icinga\Web\View\PrivilegeAudit` 2021-04-07 14:30:14 +02:00
Johannes Meyer ab90b3e0a1 Role: Add param `$cascadeUpwards` also to public method `grant()` 2021-04-07 14:30:14 +02:00
Johannes Meyer 9d10424f97 AdmissionLoader: Set additional user information `assigned_roles` 2021-04-07 14:30:14 +02:00
Johannes Meyer f4da973f68 Auth: Only reload CSS upon login if the theme **really** changed
fixes #2233
2021-04-07 14:30:14 +02:00
Johannes Meyer 0aa4e25723 Auth: Introduce method `setupUser()`
This was previously part of method `setAuthenticated()`.
Split up to allow external usage.
2021-04-07 14:30:14 +02:00
Johannes Meyer 153e9b4ade SingleValueSearchControl: Add support for groups and meta data 2021-04-07 14:30:14 +02:00
Johannes Meyer 42bdbe38b1 Introduce class `Icinga\Web\Widget\SingleValueSearchControl` 2021-04-07 14:30:14 +02:00
Johannes Meyer a4a658974d AuthBackendController: Inherit from `ipl\Web\Compat\CompatController` 2021-04-07 14:30:14 +02:00
Johannes Meyer 8b0fd4daaf FilterEditor: Merge preserved query params as encoded params
This way the query param values are not encoded twice.

fixes #4321
2021-03-30 10:30:57 +02:00
Johannes Meyer 0fc06d7795 Transform `*` equal/unequal comparisons to NULL checks
This comes from https://github.com/Icinga/ipl-sql/pull/31
2021-03-12 09:50:59 +01:00
Johannes Meyer 5dfa5e28da User: Add property `$unrestricted` 2021-03-09 11:27:13 +01:00
Johannes Meyer 8c147c1b2f css: Remove left-over styles from tipsy 2021-03-09 08:58:48 +01:00
Johannes Meyer 59e6ec4035 JavaScript: Ensure that `$baseFiles` are loaded first if minified 2021-03-09 08:52:10 +01:00
Johannes Meyer 4a2ab4740c JavaScript: Enhance `DEFINE_RE` to broaden supported syntaxes 2021-03-09 08:52:10 +01:00
Johannes Meyer d6722c7772 LdapQuery: Compare multi-valued attributes as rfc2891 suggests 2021-02-23 08:22:58 +01:00
Johannes Meyer 6a5e12af04 LdapUserGroupBackend: Properly handle multi-valued names 2021-02-23 08:22:58 +01:00
Johannes Meyer 4d4f5b3a69 js: Don't serve scripts utilizing ECMA2016+ features
i.e. library javascript assets
2021-02-22 16:01:42 +01:00
Johannes Meyer 64d1574972 JavaScript: Load minified library assets if available 2021-02-22 15:09:59 +01:00
sukhwinder33445 ab97b6fdf0
Enforce database as configuration backend (#4135) 2021-02-18 12:31:21 +01:00
Johannes Meyer 91d4669dcb
Merge pull request #4285 from Icinga/bugfix/curl-monitoring-service-show-4281
CheckNowCommandForm#init(): set submit label
2021-02-18 12:21:50 +01:00
Johannes Meyer 16be5f9572 Form: Add some todos regarding the handling of "api targets"
I've added them only for our future "migration" to `ipl\html\Form`.
We MUST NOT migrate this flawed handling of API targets.
2021-02-18 12:16:43 +01:00
Johannes Meyer cc65164a67 Adjust global permissions 2021-02-18 11:11:39 +01:00
Johannes Meyer 429a70f05f Auth: Allow to ignore any and all restrictions 2021-02-18 11:11:39 +01:00
Johannes Meyer 6eb0139446 User: Move `$user:local_name$` handling to class `AdmissionLoader`
This way it also adjusts the roles directly, and not just their
copies for the user object
2021-02-18 11:11:39 +01:00
Johannes Meyer bdd0f204f0 Auth: Support single inheritance in roles 2021-02-18 11:11:39 +01:00
Johannes Meyer 87d741265e Auth: Add support for denied permissions 2021-02-18 11:11:39 +01:00
Johannes Meyer c0541d70e9 Move permission match code from class `User` to `Role` 2021-02-18 11:11:39 +01:00
Johannes Meyer 60d61a8fe7 Response: Only apply `showCompact=1` to redirects for GET requests 2021-02-09 15:59:42 +01:00
Johannes Meyer f4a8599193 Introduce and utilize class `Icinga\Util\LessParser` 2021-01-25 09:15:53 +01:00
Johannes Meyer 500696c767 Response: Set `showCompact=1` on a redirect url..
..if compact layout has been requested.

refs #4164
fixes Icinga/icingadb-web#125
2021-01-15 16:50:00 +01:00
Johannes Meyer accbd9d847 ApplicationStateController: Initalize `$autorefreshInterval`
Instead of defining it with the setter. This prevents the
user's preferences from having an effect on this route.
2021-01-15 15:08:48 +01:00
Johannes Meyer f1dd69d877 ActionController: Set autorefresh interval on view as late as possible
This allows to initialize property `$autorefreshInterval` and have it
take an effect on non-XHR requests.
2021-01-15 15:08:48 +01:00
Johannes Meyer 765557af69 ActionController: Drop new param in method `setAutorefreshInterval()` 2021-01-15 15:08:48 +01:00
Johannes Meyer 67de8a079a js: Initialize all types of input enrichments 2021-01-14 11:57:24 +01:00
Johannes Meyer cb24eafdb5 JavaScript: Load behavior `complete.js` 2021-01-14 11:57:05 +01:00
Johannes Meyer cb9ccc68f7 Url: Drop unwanted boolean parameters in method `onlyWith()` 2021-01-13 17:20:22 +01:00
Sukhwinder Dhillon 53388a3940 Change __toString() to get encoded url string 2020-12-07 13:27:14 +01:00
Johannes Meyer 7c58b3ced1 LessCompiler: Add support for variable exports by modules
Using the following in a module's less file:

```
@exports: {
  @foo: "bar";
  @number: 4;
  @color: red;
};
```

will export the variables `@foo`, `@number` and `@color` into the global
scope. Though, exports are not able to override already defined variables.
That's still reserved for themes.
2020-12-02 10:51:01 +01:00
Johannes Meyer a33317aeab Module: Don't emit warnings for module assets
resolves #4286
2020-12-01 09:44:56 +01:00
Johannes Meyer 629a39ebbe Cli/Loader: Configure the used `Screen` to use STDERR
Otherwise we still colorize output if stderr is being
redirected.
2020-11-30 15:35:20 +01:00
Alexander A. Klimov d7e3547c6e CLI: write errors to stderr 2020-11-30 15:35:20 +01:00
Alexander A. Klimov 81b19285a7 Make auto refresh interval configurable
refs #2819
2020-11-26 11:38:02 +01:00
Johannes Meyer 6956ec4450 Manager/Libraries: Don't try to compare versions if any version is sufficient 2020-11-24 15:31:11 +01:00
Johannes Meyer 79478fd2e1 Libraries: Return partial matches in method `get()`
This allows to reference libraries with only their
project name, not just together with the organisation
name.
2020-11-18 16:52:22 +01:00
Johannes Meyer be99703a67 Module: Deprecate asset support 2020-11-18 13:21:34 +01:00
Johannes Meyer a370a99fb4 cli: Allow to ignore module dependencies with `module enable --force` 2020-11-18 13:21:34 +01:00
Johannes Meyer 40c97d6a3e Libraries: Add method `get($name)` 2020-11-18 13:21:34 +01:00
Johannes Meyer 28c7c41b55 Manager: Don't enable modules which have unmet dependencies 2020-11-18 13:21:33 +01:00
Johannes Meyer aba8c4a8ba Manager: Add method `hasUnmetDependencies($name)` 2020-11-18 13:21:33 +01:00
Johannes Meyer baaf663db3 Module: Introduce new metadata field `Requires`
This is the successor of `Depends` and allows to
define dependencies for libraries and modules:

`Requires: <lib-name>[ (<ver>)][, <lib-name>[ (<ver>)]] ...`

or

```
Requires:
  Libraries: <name>[ (<ver>)][, <name>[ (<ver>)]] ...
  Modules: <name>[ (<ver>)][, <name>[ (<ver>)]] ...
```
2020-11-18 13:21:33 +01:00
Johannes Meyer 99b620983a Manager: Add method `has($name, $version = null)` 2020-11-18 13:21:33 +01:00
Johannes Meyer 0f485f1257 Libraries: Add method `has($name, $version = null)` 2020-11-18 13:21:33 +01:00
Johannes Meyer e9fa9d95dd JavaScript: Also optimize `define()` calls in module JS 2020-11-18 13:21:33 +01:00
Johannes Meyer 19e4eb6e1e Module: Add missing getter for property `jsdir` 2020-11-18 13:21:33 +01:00
Johannes Meyer 5a38977906 js: Add `define.js` 2020-11-18 13:21:33 +01:00
Johannes Meyer 220044277c webrouter: Serve lib assets at `lib/<lib-name>/<asset-path>` 2020-11-18 13:20:09 +01:00
Johannes Meyer ed7763c379 Introduce class `Icinga\Web\Controller\StaticController` 2020-11-18 13:20:09 +01:00
Johannes Meyer e44ea3b34c Introduce class `Icinga\Application\StaticWeb` 2020-11-18 13:20:09 +01:00
Johannes Meyer a9d6482533 Javascript: Load JS assets from loaded libraries 2020-11-18 13:20:09 +01:00
Johannes Meyer c49a811fb5 Library: Add getters for the different asset paths 2020-11-18 13:20:09 +01:00
Johannes Meyer ad9099509d StyleSheet: Load css assets from loaded libraries 2020-11-18 13:20:09 +01:00
Johannes Meyer c2769bd177 Library: Add accessors for assets 2020-11-18 13:20:09 +01:00
Johannes Meyer 84c23fe92b Library: Add accessors for meta data 2020-11-18 13:20:09 +01:00
Johannes Meyer a60f511cfc bootstrap: Load external libraries 2020-11-18 13:20:09 +01:00
Johannes Meyer a2bdc8074f Introduce classes `Libraries` and `Library` 2020-11-18 13:20:09 +01:00
Alexander A. Klimov 74d5d69085 Url::fromPath(): var_export() input value to complain about
... not to hide its type.
2020-11-18 09:40:44 +01:00
Johannes Meyer d918d6c86f
Merge pull request #4235 from Icinga/fix/sparkline-js-performance
Drop sparkline.js and render inline-pies as SVG
2020-11-18 09:37:31 +01:00
Jorge Vallecillo 865e4b9b2a Fix typos: consecutive use of 'the' 2020-11-18 09:26:39 +01:00
Johannes Meyer 7c1886430b Controller: Don't accept `0` as default page limit 2020-11-16 13:29:49 +01:00
Johannes Meyer 8c73f0462e InlinePie: Utilize SVG to render charts instantly
Inline pie charts usually don't contain that much
data and the SVG should be rather small in size.
So it doesn't hurt rendering them instantly.
2020-09-28 16:40:39 +02:00
Johannes Meyer 37fb455977 js: Drop sparkline lib and behavior 2020-09-28 16:39:54 +02:00
Johannes Meyer 77244b2c1b Raise version to v2.8.2 2020-08-19 11:03:31 +02:00
Johannes Meyer c3d329bd48 Raise version to 2.8.1 2020-06-29 10:30:58 +02:00
Johannes Meyer b288d86e91 DbQuery: Return non-string args as is in `valueToTimestamp()`
fixes #4182
2020-06-24 14:09:13 +02:00
Johannes Meyer 4d173e6746 DbUserBackend: Lowercase usernames before fetching password hashes
The BINARY cast to make trailing spaces significant (#4030) also
made these queries case-sensitive. This wasn't identified at the
time because the query itself wasn't case-insensitive, but the
default collation on the `name` column. (Tests sometimes are the
perfect mitigation for this...)

fixes #4184
2020-06-24 14:08:30 +02:00
Johannes Meyer e95fac3ff1 Raise version to 2.8.0 2020-06-08 10:51:35 +02:00
Johannes Meyer 62dd0b3f1e ActionController: Fix that view variable `compact` is undefined
refs #4164
2020-06-08 09:26:36 +02:00