[evolution-data-server] I#350 - LDAP: Conditionally use 'description' as Note
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] I#350 - LDAP: Conditionally use 'description' as Note
- Date: Thu, 2 Jun 2022 09:11:25 +0000 (UTC)
commit 2b56a314ea39ec730212e507c26398fd6228dbac
Author: Milan Crha <mcrha redhat com>
Date: Thu Jun 2 11:10:49 2022 +0200
I#350 - LDAP: Conditionally use 'description' as Note
Closes https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/350
.../backends/ldap/e-book-backend-ldap.c | 36 ++++++++++++++++++++--
1 file changed, 34 insertions(+), 2 deletions(-)
---
diff --git a/src/addressbook/backends/ldap/e-book-backend-ldap.c
b/src/addressbook/backends/ldap/e-book-backend-ldap.c
index 1c8336362..aea4bbfe7 100644
--- a/src/addressbook/backends/ldap/e-book-backend-ldap.c
+++ b/src/addressbook/backends/ldap/e-book-backend-ldap.c
@@ -262,6 +262,8 @@ static struct prop_info {
#define PROP_TYPE_GROUP (1 << 6)
#define PROP_TYPE_CONTACT (1 << 7) /* is ignored for contact lists */
#define PROP_TYPE_FORCE_BINARY (1 << 8) /* to force ";binary" in attribute name */
+#define PROP_WITH_EVOSCHEME (1 << 9)
+#define PROP_WITHOUT_EVOSCHEME (1 << 10)
gint prop_type;
/* the remaining items are only used for the TYPE_COMPLEX props */
@@ -287,6 +289,8 @@ static struct prop_info {
#define GROUP_PROP(fid,a,ctor,ber,cmp) {fid, a, PROP_TYPE_GROUP, ctor, ber, cmp}
#define ADDRESS_STRING_PROP(fid,a, ctor) {fid, a, PROP_TYPE_COMPLEX, ctor}
#define CONTACT_STRING_PROP(fid,a) {fid, a, PROP_TYPE_STRING | PROP_TYPE_CONTACT}
+#define CONTACT_STRING_PROP_WITH_EVOSCHEME(fid,a) {fid, a, PROP_TYPE_STRING | PROP_TYPE_CONTACT |
PROP_WITH_EVOSCHEME}
+#define CONTACT_STRING_PROP_WITHOUT_EVOSCHEME(fid,a) {fid, a, PROP_TYPE_STRING | PROP_TYPE_CONTACT |
PROP_WITHOUT_EVOSCHEME}
#define CALENTRY_CONTACT_STRING_PROP(fid,a) {fid, a, PROP_TYPE_STRING | PROP_TYPE_CONTACT | PROP_CALENTRY}
/* name fields */
@@ -361,7 +365,8 @@ static struct prop_info {
/* map nickname to displayName */
CONTACT_STRING_PROP (E_CONTACT_NICKNAME, "displayName"),
E_STRING_PROP (E_CONTACT_SPOUSE, "spouseName"),
- E_STRING_PROP (E_CONTACT_NOTE, "note"),
+ CONTACT_STRING_PROP_WITH_EVOSCHEME (E_CONTACT_NOTE, "note"),
+ CONTACT_STRING_PROP_WITHOUT_EVOSCHEME (E_CONTACT_NOTE, "description"),
E_COMPLEX_PROP (E_CONTACT_ANNIVERSARY, "anniversary", anniversary_populate, anniversary_ber,
anniversary_compare),
E_COMPLEX_PROP (E_CONTACT_BIRTH_DATE, "birthDate", birthday_populate, birthday_ber,
birthday_compare),
E_STRING_PROP (E_CONTACT_MAILER, "mailer"),
@@ -1300,6 +1305,13 @@ build_mods_from_contacts (EBookBackendLDAP *bl,
if (is_list)
continue;
}
+
+ if (((prop_info[i].prop_type & PROP_WITHOUT_EVOSCHEME) != 0 &&
+ bl->priv->evolutionPersonSupported) ||
+ ((prop_info[i].prop_type & PROP_WITH_EVOSCHEME) != 0 &&
+ !bl->priv->evolutionPersonSupported))
+ continue;
+
if ((prop_info[i].prop_type & PROP_CALENTRY) != 0) {
if (!bl->priv->calEntrySupported)
continue;
@@ -3874,6 +3886,11 @@ func_contains (struct _ESExp *f,
!(prop_info[i].prop_type & PROP_WRITE_ONLY) &&
(ldap_data->bl->priv->evolutionPersonSupported ||
!(prop_info[i].prop_type & PROP_EVOLVE)) &&
+ (!(prop_info[i].prop_type & (PROP_WITH_EVOSCHEME |
PROP_WITHOUT_EVOSCHEME)) ||
+ ((prop_info[i].prop_type & PROP_WITHOUT_EVOSCHEME) != 0 &&
+ !ldap_data->bl->priv->evolutionPersonSupported) ||
+ ((prop_info[i].prop_type & PROP_WITH_EVOSCHEME) != 0 &&
+ ldap_data->bl->priv->evolutionPersonSupported)) &&
(ldap_data->bl->priv->calEntrySupported ||
!(prop_info[i].prop_type & PROP_CALENTRY))) {
g_string_append_c (big_query, '(');
@@ -4073,6 +4090,11 @@ func_exists (struct _ESExp *f,
if (!(prop_info[i].prop_type & PROP_WRITE_ONLY) &&
(ldap_data->bl->priv->evolutionPersonSupported ||
!(prop_info[i].prop_type & PROP_EVOLVE)) &&
+ (!(prop_info[i].prop_type & (PROP_WITH_EVOSCHEME |
PROP_WITHOUT_EVOSCHEME)) ||
+ ((prop_info[i].prop_type & PROP_WITHOUT_EVOSCHEME) != 0 &&
+ !ldap_data->bl->priv->evolutionPersonSupported) ||
+ ((prop_info[i].prop_type & PROP_WITH_EVOSCHEME) != 0 &&
+ ldap_data->bl->priv->evolutionPersonSupported)) &&
(ldap_data->bl->priv->calEntrySupported ||
!(prop_info[i].prop_type & PROP_CALENTRY))) {
g_string_append_c (big_query, '(');
@@ -4192,6 +4214,11 @@ query_prop_to_ldap (const gchar *query_prop,
if (!strcmp (query_prop, e_contact_field_name (prop_info[i].field_id))) {
if ((evolution_person_supported ||
!(prop_info[i].prop_type & PROP_EVOLVE)) &&
+ (!(prop_info[i].prop_type & (PROP_WITH_EVOSCHEME | PROP_WITHOUT_EVOSCHEME)) ||
+ ((prop_info[i].prop_type & PROP_WITHOUT_EVOSCHEME) != 0 &&
+ !evolution_person_supported) ||
+ ((prop_info[i].prop_type & PROP_WITH_EVOSCHEME) != 0 &&
+ evolution_person_supported)) &&
(calentry_supported ||
!(prop_info[i].prop_type & PROP_CALENTRY))) {
return prop_info[i].ldap_attr;
@@ -4268,7 +4295,12 @@ build_contact_from_entry (EBookBackendLDAP *bl,
}
else {
for (i = 0; i < G_N_ELEMENTS (prop_info); i++) {
- if (!g_ascii_strcasecmp (attr, prop_info[i].ldap_attr)) {
+ if (!g_ascii_strcasecmp (attr, prop_info[i].ldap_attr) &&
+ (!(prop_info[i].prop_type & (PROP_WITH_EVOSCHEME |
PROP_WITHOUT_EVOSCHEME)) ||
+ ((prop_info[i].prop_type & PROP_WITHOUT_EVOSCHEME) != 0 &&
+ !bl->priv->evolutionPersonSupported) ||
+ ((prop_info[i].prop_type & PROP_WITH_EVOSCHEME) != 0 &&
+ bl->priv->evolutionPersonSupported))) {
info = &prop_info[i];
break;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]