From e0b8ecada5630788d312ba7b53eb75290e299592 Mon Sep 17 00:00:00 2001 From: Rik Theys Date: Wed, 1 Mar 2017 11:06:00 +0100 Subject: [PATCH] Fix modified mapping (fix #108) The checks to test if a "modified" attribute was found in the $valid array used in_array, which fails. Replace this with array_key_exists calls. This fixes https://gitlab.com/davical-project/davical/issues/108 [ $mapping['modified'] is a key in $valid, not a value. This is a regression introduced in 970b61ac, for 1.1.5 ] --- inc/drivers_ldap.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/inc/drivers_ldap.php b/inc/drivers_ldap.php index 05a294d0..24b371a1 100644 --- a/inc/drivers_ldap.php +++ b/inc/drivers_ldap.php @@ -385,7 +385,7 @@ function LDAP_check($username, $password ){ return false; } - if ( $mapping['modified'] != "" && in_array($mapping['modified'], $valid)) { + if ( $mapping['modified'] != "" && array_key_exists($mapping['modified'], $valid)) { $ldap_timestamp = $valid[$mapping['modified']]; } else { $ldap_timestamp = '19700101000000'; @@ -398,7 +398,7 @@ function LDAP_check($username, $password ){ $$k = substr($ldap_timestamp,$v[0],$v[1]); $ldap_timestamp = "$Y"."$m"."$d"."$H"."$M"."$S"; - if ($mapping['modified'] != "" && in_array($mapping['modified'], $valid)) { + if ($mapping['modified'] != "" && array_key_exists($mapping['modified'], $valid)) { $valid[$mapping['modified']] = "$Y-$m-$d $H:$M:$S"; } @@ -621,7 +621,7 @@ function sync_LDAP(){ foreach( $users_to_create as $username ) { $principal = new Principal( 'username', $username ); $valid = $ldap_users_info[$username]; - if ( $mapping['modified'] != "" && in_array($mapping['modified'], $valid)) { + if ( $mapping['modified'] != "" && array_key_exists($mapping['modified'], $valid)) { $ldap_timestamp = $valid[$mapping['modified']]; } else { $ldap_timestamp = '19700101000000'; @@ -641,7 +641,7 @@ function sync_LDAP(){ else if ( empty($ldap_timestamp) ) { $ldap_timestamp = date('c'); } - if ( $mapping['modified'] != "" && in_array($mapping['modified'], $valid)) { + if ( $mapping['modified'] != "" && array_key_exists($mapping['modified'], $valid)) { $valid[$mapping['modified']] = $ldap_timestamp; } @@ -676,7 +676,7 @@ function sync_LDAP(){ foreach ( $users_to_update as $key=> $username ) { $principal = new Principal( 'username', $username ); $valid=$ldap_users_info[$username]; - if ( $mapping['modified'] != "" && in_array($mapping['modified'], $valid)) { + if ( $mapping['modified'] != "" && array_key_exists($mapping['modified'], $valid)) { $ldap_timestamp = $valid[$mapping['modified']]; } else { $ldap_timestamp = '19700101000000';