From 5c199783c2cdb4138e73c8c876eab3033ed23ae2 Mon Sep 17 00:00:00 2001 From: Erik Thuning <boooink@gmail.com> Date: Mon, 26 Feb 2024 12:39:11 +0100 Subject: [PATCH] Added error handling for missing attributes in ldap lookups --- include/Ldap.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/Ldap.php b/include/Ldap.php index f43d7f9..e4ba83b 100644 --- a/include/Ldap.php +++ b/include/Ldap.php @@ -15,12 +15,19 @@ class Ldap { } public function get_attribute($uid, $attribute) { + $attribute = strtolower($attribute); $data = $this->search("uid=$uid", $attribute); if($data['count'] !== 1) { $err = "LDAP search for '$uid' did not return exactly one result"; throw new Exception($err); } - return $data[0][strtolower($attribute)][0]; + $result = $data[0]; + if(!in_array($attribute, $result) || !$result[$attribute][0] ) { + $err = "LDAP search for '$uid' did not return " + ."a value for '$attribute'"; + throw new Exception($err); + } + return $result[$attribute][0]; } public function get_user($uid) {