Commit graph

471 commits

Author SHA1 Message Date
Eric Lippmann
662de28f85 License source files as GPL-3.0-or-later
Add SPDX license headers and mark source files as GPL-3.0-or-later to
preserve the option to relicense under later GPL versions.
2026-03-26 17:49:26 +01:00
jrauh01
158428fcae
Log user roles (#5311)
Log the roles assigned to a user during login in the debug log.
2026-03-25 15:19:54 +01:00
Bastian Lederer
007abed960 Avoid passing null to non-nullable parameters in built-in functions
PHP 8.1 deprecated passing `null` to non-nullable parameters in built-in
functions (deprecated in 8.1, will become a `TypeError` in 9.0).
2026-03-19 22:27:45 +01:00
Bastian Lederer
ea0ce32bc9 Change implicit nullable type declaration to explicit
Since PHP 8.4 implicitly nullable parameter types are deprecated.

Normalize scoped PHPDoc for nullable-parameter updates: use `?Type` instead of
`Type|null`, remove column alignment, and indent continuation lines with 2
spaces.

Co-authored-by: "Eric Lippmann <eric.lippmann@icinga.com>"
2026-03-10 16:40:27 +01:00
Alexander Aleksandrovič Klimov
4037eb51b1
LoginButtonHook: Support additional buttons below the login form (#5442)
Some checks failed
L10n Update / update (push) Has been cancelled
CI / PHP (push) Has been cancelled
Introduces `LoginButtonHook`, a new hook for rendering additional buttons
below the login form. Extend this class to display custom buttons on the
Icinga Web login page — useful for alternative authentication flows such
as SSO. Register your implementation by calling
`YourLoginButtons::register()` during module initialization.
2026-03-04 15:32:06 +01:00
Alexander A. Klimov
352c79faf4 Introduce AuthenticationHook#onAuthFromSession()
Especially useful for code not suitable for ApplicationStateHook due to the fact that a user can block requests to /application-state.
2026-01-13 15:21:09 +01:00
Gianluca Piccolo
eae7222ac7 Fix: add login hook to ext backends
Some checks failed
L10n Update / update (push) Has been cancelled
PHP Tests / Static analysis for php 8.2 on ubuntu-latest (push) Has been cancelled
PHP Tests / Static analysis for php 8.3 on ubuntu-latest (push) Has been cancelled
PHP Tests / Static analysis for php 8.4 on ubuntu-latest (push) Has been cancelled
PHP Tests / Unit tests with php 8.2 on ubuntu-latest (push) Has been cancelled
PHP Tests / Unit tests with php 8.3 on ubuntu-latest (push) Has been cancelled
PHP Tests / Unit tests with php 8.4 on ubuntu-latest (push) Has been cancelled
2025-11-13 09:20:43 +01:00
Johannes Meyer
1ddd04df50 DbUserBackend: Fix broken password hash fetch routine
fixes #5343
2025-03-26 16:40:48 +01:00
Johannes Meyer
92dad17a2b DbUserGroupBackend: Match memberships case-insensitive on pgsql 2025-03-20 16:24:21 +01:00
Johannes Meyer
13c9a73842 DbUserBackend: Match usernames case-insensitive on pgsql 2025-03-20 16:24:21 +01:00
Sukhwinder Dhillon
c6c1e28350 RolesConfig: Add missing column name for quick search 2025-03-20 14:30:45 +01:00
Johannes Meyer
8551fffd4f roles: Fix default sort rule by name 2024-11-05 09:16:21 +01:00
Sukhwinder Dhillon
e3b89184ae UserGroupBackend: Fix Variable '$backend' is probably undefined 2023-08-23 10:53:14 +02:00
Sukhwinder Dhillon
61b827a43c DbUserGroupBackend: Remove unnecessary (! $groupName) check 2023-08-23 10:53:14 +02:00
Sukhwinder Dhillon
54b3539896 UserBackend: Fix Variable '$backend' is probably undefined 2023-08-23 10:53:14 +02:00
Sukhwinder Dhillon
2626d42c54 LdapUserBackend: Import missing Exception 2023-08-23 10:53:14 +02:00
raviks789
b585ed25df LdapUserGroupBackend: Update PHPDoc for method retrieveUserName() 2023-08-23 10:53:13 +02:00
raviks789
381aee94d1 LdapUserBackend: Import exception QueryException
Method `LdapUserBackend::requireQueryColumn()` throws exception `QueryException`
2023-08-23 10:53:13 +02:00
Johannes Meyer
f8e1137060 Remove restriction macro user:local_name 2022-06-14 14:24:30 +02:00
Sukhwinder Dhillon
aad2419545 Remove obsolete config_backend option and not required code
The user preferences backend is now always a `db`.
2022-05-27 14:02:11 +02:00
Sukhwinder Dhillon
8ff1a22df7 Set preferences store type to Db and make it non-configurable 2022-05-27 13:55:48 +02:00
Sukhwinder Dhillon
1b1eb3436f sql: Change charset to utf8mb4
fixes https://github.com/Icinga/icingaweb2/issues/4680
2022-05-02 15:36:31 +02:00
Alexander Aleksandrovič Klimov
874af33d81 Correct Auth#getUser() type spec
Doc says it may be null.
2022-04-11 13:30:24 +02:00
Johannes Meyer
3dc384fb58 Avoid passing null to non-nullable arguments 2022-03-24 12:29:06 +01:00
Johannes Meyer
c038e84fc2 Ensure Return Type Compatibility with Internal Classes 2022-03-24 12:29:06 +01:00
Johannes Meyer
0b6f71c446 If enforcing a charset, DO IT ONLY IF THE DB TYPE IS CORRECT 2021-07-28 09:04:28 +02:00
Johannes Meyer
517c108cc4 UserGroupBackend: Always use utf8 as db connection charset 2021-07-26 16:37:41 +02:00
Johannes Meyer
7ce3778378 UserBackend: Always use utf8 as db connection charset 2021-07-26 16:37:35 +02:00
Eric Lippmann
d1aaaf7fb0 Replace user:local_name with user.local_name macro in restrictions 2021-06-28 15:16:56 +02:00
Johannes Meyer
82485236f7 Auth: Also reload theme mode if no theme is active
refs #4390
2021-06-24 09:44:28 +02:00
Sukhwinder Dhillon
492a9ec229 Auth: Reload CSS if mode change 2021-06-23 17:34:27 +02:00
Johannes Meyer
0756797fbb Make configuration of custom user-group backends possible
refs #2840
2021-06-18 10:41:39 +02:00
Gianluca Piccolo
1e7f700102 Make configuration of custom user backends possible
refs Icinga/icingaweb2#2840
2021-06-18 10:28:35 +02:00
Johannes Meyer
a87f15c861 Auth: Reload entire layout if the locale changes 2021-05-17 13:20:42 +02:00
Johannes Meyer
d9a87f76a2 AdmissionLoader: Optimize role loading 2021-04-14 10:11:19 +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
5dfa5e28da User: Add property $unrestricted 2021-03-09 11:27:13 +01:00
Johannes Meyer
6a5e12af04 LdapUserGroupBackend: Properly handle multi-valued names 2021-02-23 08:22:58 +01:00
sukhwinder33445
ab97b6fdf0
Enforce database as configuration backend (#4135) 2021-02-18 12:31:21 +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
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
Eric Lippmann
990a5e4d61 Introduce Auth::setUser() 2020-03-02 14:15:53 +01:00