From bf510838917efac7b60615c7857aeeb37356a110 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Sat, 9 Mar 2019 12:38:15 +0100 Subject: [PATCH] * ActiveDirectory: fix "not a valid GUID" error, when getting an avatar of a group --- api/src/Contacts/Ads.php | 5 +++- ...ss.calendar_owner_etemplate_widget.inc.php | 25 ++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/api/src/Contacts/Ads.php b/api/src/Contacts/Ads.php index b3cc8a771c..7bc3d61e84 100644 --- a/api/src/Contacts/Ads.php +++ b/api/src/Contacts/Ads.php @@ -177,7 +177,10 @@ class Ads extends Ldap !is_array($_contact_id) && substr($_contact_id,0,8) == 'account:') { $account_id = (int)(is_array($_contact_id) ? $_contact_id['account_id'] : substr($_contact_id,8)); - $_contact_id = $GLOBALS['egw']->accounts->id2name($account_id, 'person_id'); + if ($account_id < 0 || !($_contact_id = $GLOBALS['egw']->accounts->id2name($account_id, 'person_id'))) + { + return false; + } } $contact_id = !is_array($_contact_id) ? $_contact_id : (isset ($_contact_id['id']) ? $_contact_id['id'] : $_contact_id['uid']); diff --git a/calendar/inc/class.calendar_owner_etemplate_widget.inc.php b/calendar/inc/class.calendar_owner_etemplate_widget.inc.php index 16f2936c14..33660bc2d0 100644 --- a/calendar/inc/class.calendar_owner_etemplate_widget.inc.php +++ b/calendar/inc/class.calendar_owner_etemplate_widget.inc.php @@ -63,18 +63,25 @@ class calendar_owner_etemplate_widget extends Etemplate\Widget\Taglist $accounts += $accounts_type; } $sel_options += array_map( - function($account_id, $account_name) { - $contact_obj = new Api\Contacts(); - $contact = $contact_obj->read('account:'.$account_id, true); - return array( + function($account_id, $account_name) + { + $data = array( 'value' => ''.$account_id, 'label' => $account_name, 'app' => lang('api-accounts'), - 'icon' => Api\Framework::link('/api/avatar.php', array( - 'contact_id' => $contact['id'], - 'etag' => $contact['etag'] ? $contact['etag'] : 1 - )) ); + if ($account_id > 0) + { + $contact_obj = new Api\Contacts(); + if (($contact = $contact_obj->read('account:'.$account_id, true))) + { + $data['icon'] = Api\Framework::link('/api/avatar.php', array( + 'contact_id' => $contact['id'], + 'etag' => $contact['etag'] ? $contact['etag'] : 1 + )); + } + } + return $data; }, array_keys($accounts), $accounts ); @@ -308,7 +315,7 @@ class calendar_owner_etemplate_widget extends Etemplate\Widget\Taglist */ public static function get_owner_label($id) { - static $bo; + static $bo=null; if(!$bo) $bo = new calendar_bo(); $id = ''.$id;