Commit graph

15 commits

Author SHA1 Message Date
Alexander A. Klimov
3c8ed68cc6 Upgrade license from GPLv2 to GPLv2+
This was easy because only README.md and doc/01-About.md were redacted manually, everything else via:
git ls-files -z |xargs -0 perl -pi -e 's/Icinga GmbH \| GPLv2/Icinga GmbH | GPLv2+/'

This is legal because we have only merged PRs with label:cla/signed or made by Icinga staff:
https://github.com/Icinga/icingadb-web/pulls?page=1&q=is%3Apr+is%3Aclosed+-label%3Acla%2Fsigned+-author%3Anilmerg

This has no risk for us in people distributing their own version under GPLv3 only.
After all, we won't take their patches anyway, unless they sign our CLA.

This is the cleanest solution for having e.g. these in one address space:

* Icinga Web, GPLv2+
* K8s Web, AGPLv3
* Thirdparty, some LGPLv3 and Apache-2.0

Apropos, K8s Web is even v3-licensed on purpose, to have a stronger protection against cloud ops.
2025-11-21 13:31:24 +01:00
Sukhwinder Dhillon
fc65a18bb6 Add MultiSelectQuickActions support 2024-11-19 17:44:53 +01:00
Sukhwinder Dhillon
73b8a1bcf2 ObjectAuthorization: Replace . with _ for db query 2023-05-30 13:56:56 +02:00
Johannes Meyer
73a95e055b ObjectAuthorization: Gracefully handle incomplete objects in grantsOn() 2022-09-01 09:51:50 +02:00
Yonas Habteab
00fb54dd44 ObjectAuthorization: Don't use columns() of ipl/sql to specify columns to be selected
The `Sql::columns()` method doesn't override existing columns when calling this directly, because
at this point the ipl/orm query has already collected all selectable columns, which are not required
for this use case. A later call to the `columns()` method using the select base doesn't prevent all the
columns registered by the query from being selected.
2022-06-28 16:12:28 +02:00
Eric Lippmann
6fe5af8e00 Don't call Query::columns() twice in a row
Query::columns() is no longer additive. Use ::withColumns() instead.
2022-06-02 14:24:52 +02:00
Johannes Meyer
005193442c ObjectAuthorization: Bail early if a role denies a permission
fixes #515
2022-03-31 11:19:10 +02:00
Yonas Habteab
aefd0e1f7d Add PHP 7 argument & return type declarations to all member methods 2021-11-03 16:06:59 +01:00
Yonas Habteab
9f99637153 Introduce matchesOn & isMatchedOn methods 2021-10-01 15:30:06 +02:00
Yonas Habteab
5ff0793036 ObjectAuthorization: Check whether the permission isn't within the refusals 2021-08-31 11:34:27 +02:00
Yonas Habteab
cbb5bc441f ObjectAuthorization: Quote RoleName which is used as an alias for mysql Query 2021-08-31 11:33:50 +02:00
Johannes Meyer
89789acc10 ObjectAuthorization: Specify $cacheKey for method loadGrants()
This ensures that roles are registered for the object/filter in
question no matter if there are any roles with/without restrictions.
2021-03-22 17:13:56 +01:00
Johannes Meyer
057b7dc8e0 Check permissions in object context when issuing commands 2021-03-19 15:47:57 +01:00
Johannes Meyer
c384c3198a ObjectAuthorization: Perform check on all objects in grantsOnType()
`grantsOnType()` will now perform the permission check it is asked for
on every object that matches the filter. It will then cache all
individual results so that any subsequent call to `grantsOn()` will
hit the cache instead of triggering another query.
2021-03-19 15:47:57 +01:00
Johannes Meyer
47cc59e3e1 Introduce class ObjectAuthorization 2021-03-19 15:47:57 +01:00