LDAP authentication support (#815)

This commit is contained in:
Kevin Papst
2019-06-07 22:48:39 +02:00
committed by GitHub
parent bcf1ebd778
commit 0c0e9c2f71
99 changed files with 3542 additions and 926 deletions

View File

@@ -314,3 +314,12 @@ kimai:
data_dir: '%kernel.project_dir%/var/data'
plugin_dir: '%kernel.project_dir%/var/plugins'
# --------------------------------------------------------------------------------
# --------------------------------------------------------------------------------
# LDAP
# Connect to your companies directory server, see https://www.kimai.org/documentation/ldap.html
# --------------------------------------------------------------------------------
# ldap:
# active: true
# --------------------------------------------------------------------------------

View File

@@ -3,6 +3,11 @@ security:
App\Entity\User: bcrypt
providers:
chain_provider:
chain:
providers: [fos_userbundle, kimai_ldap]
kimai_ldap:
id: App\Ldap\LdapUserProvider
fos_userbundle:
id: fos_user.user_provider.username_email
@@ -26,8 +31,13 @@ security:
lifetime: 604800
path: /
# activate the LdapAuthenticationProvider
kimai_ldap: ~
# activate all configured user provider
provider: chain_provider
form_login:
provider: fos_userbundle
check_path: fos_user_security_check
login_path: fos_user_security_login
csrf_token_generator: security.csrf.token_manager

View File

@@ -13,7 +13,7 @@ services:
# fetching services directly from the container via $container->get() won't work.
# The best practice is to be explicit about your dependencies anyway.
bind:
$projectDirectory: "%kernel.project_dir%"
$projectDirectory: '%kernel.project_dir%'
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
@@ -36,34 +36,37 @@ services:
App\Repository\WidgetRepository:
arguments:
$widgets: "%kimai.widgets%"
$widgets: '%kimai.widgets%'
App\Controller\DashboardController:
arguments:
$dashboard: "%kimai.dashboard%"
$dashboard: '%kimai.dashboard%'
App\Configuration\LanguageFormattings:
arguments: ["%kimai.languages%"]
arguments: ['%kimai.languages%']
App\Configuration\TimesheetConfiguration:
arguments:
$settings: "%kimai.timesheet%"
$settings: '%kimai.timesheet%'
App\Configuration\CalendarConfiguration:
arguments:
$settings: "%kimai.calendar%"
$settings: '%kimai.calendar%'
App\Configuration\FormConfiguration:
arguments:
$settings: "%kimai.defaults%"
$settings: '%kimai.defaults%'
App\Configuration\SystemConfiguration:
arguments:
$settings: "%kimai.config%"
$settings: '%kimai.config%'
App\Configuration\ThemeConfiguration:
arguments:
$settings: "%kimai.theme%"
$settings: '%kimai.theme%'
App\Configuration\LdapConfiguration:
arguments: ['%kimai.ldap%']
App\Utils\MPdfConverter:
arguments: ['%kernel.cache_dir%']
@@ -95,11 +98,8 @@ services:
# FORMS
# ================================================================================
App\Form\Type\UserRoleType:
arguments: ["%security.role_hierarchy.roles%"]
App\Form\Type\LanguageType:
arguments: ["%app_locales%"]
arguments: ['%app_locales%']
# ================================================================================
# THEME
@@ -113,17 +113,31 @@ services:
# ================================================================================
App\Timesheet\Calculator\DurationCalculator:
arguments: ["%kimai.timesheet.rounding%"]
arguments: ['%kimai.timesheet.rounding%']
App\Timesheet\Calculator\RateCalculator:
arguments: ["%kimai.timesheet.rates%"]
arguments: ['%kimai.timesheet.rates%']
# ================================================================================
# SECURITY & VOTER
# ================================================================================
App\Security\RoleService:
arguments: ['%security.role_hierarchy.roles%']
App\Security\RolePermissionManager:
arguments: ["%kimai.permissions%"]
arguments: ['%kimai.permissions%']
# ================================================================================
# LDAP
# ================================================================================
Zend\Ldap\Ldap:
class: App\Ldap\ZendLdap
kimai_ldap.security.authentication.provider:
class: App\Ldap\LdapAuthenticationProvider
arguments: ['@App\Security\UserChecker', '', '', '', '@App\Configuration\LdapConfiguration', '%security.authentication.hide_user_not_found%']
# ================================================================================
# REPOSITORIES