Giter Club home page Giter Club logo

rcmcarddav's People

Contributors

alphajack avatar aymhce avatar azmeuk avatar bbraybrook-tc avatar blind-coder avatar brocktice avatar brrrrrrrt avatar descartes1 avatar diorcety avatar disassembler0 avatar e-dschungel avatar francoisp avatar hudecof avatar jcharaoui avatar jmberg avatar jorgelzpz avatar jplock avatar kermit-the-frog avatar ltsavar avatar lx-s avatar madmath03 avatar mdosch avatar mrjoel avatar mstilkerich avatar orlitzky avatar sahne123 avatar skrat avatar tblue avatar tobyll avatar websafe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rcmcarddav's Issues

INSTALL documentation needs updating

I had trouble following step number 6 in the INSTALL file. The file roundcubemail/config/main.inc.php does not exist any more since June 2013. I think the correct file is roundcubemail/config/config.inc.php. And the name of the array has changed. It should be $config['plugins']. HTH.

HTTP timeout value is too low

I try to sync an adressbook which is quite huge (600 contacts). Carddav server is Owncloud 6.0.2 and it is hosted on a low speed internet line (64 kByte/s).
I get this error in carddav log file
[27-May-2014 21:14:23 +0000]: BACKEND: (cdfopen) Could not send request: could not send the HTTP request: Could not execute the request: Operation timed out after 10000 milliseconds with 556135 bytes received

I edited carddav_common.php file to change timeout from 10s to 100s and it solves the problem (line 167).

Could you increase this value by default ? or even better, is it possible to do carddav sync via crontab ?

Update of carddav and "preemptive_auth" error with old database

i`m using carddav since a long time and now I´ve upgraded to RC1.0 and latest carddav plugin. But now I get the following error:

 DB Error in /var/www/all/webmail/program/lib/Roundcube/rcube_db.php (465): [1054] Unknown column 'preemptive_auth' in 'field list' (SQL Query: UPDATE carddav_addressbooks SET name [...])

and I could see in the database table carddav_addressbooks that there is no preemptive_auth colomn. Is there an update script to update the database?

baseurl replace problem with %u

there's a string replace error with the %u macro in baseurl that can be triggered - when it happens the %u is effectively not replaced and the wrong url is hit.

Problem with Google Contacts

There are problems with google contacts. When I alter or create a contact an error is displayed in roundcube.

wrong code for czech localization

The czech localization does not work. The problem is the wrong name of the file. Rename from cz_CZ.inc to cs_CZ.inc resolves the problem.

Error creating new tables @ install

following the guideline in the INSTALL text file, the database tables need to be created, by executing the mysql command: mysql -h [db-server-name] -u [user] -p -D roundcubemail <./mysql.sql
when executing the command, there is an error reported:
ERROR 1005 (HY000) at line 2: Can't create table '<dbcarddav.carddav_addressbooks' (errno: 150)
After many attempts, including attempts to create the tables myself, the error seems to come from this statement:
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE
because if this line is omitted from the script, the error disappears (but the table is probably incorrect, and plugin won't work)

Only one vcard is visible in the addressbook

Hi,

I can only see one vcard in the addressbook on roundcube. The backend is davical. There are many more vcards in that addressbook that should be retrieved.

here is a debug log:

20-Jan-2015 20:28:27 +0000: DISCOVERY: (cdfopen) retrieve_addressbooks requesting http://bote.dyn.robewald.de:80/davical/caldav.php/robert/addresses/ RL 5: BACKEND: (update_addressbook) UPDATE addressbook
20-Jan-2015 20:28:27 +0000: DISCOVERY: (cdfopen) Code: 207
20-Jan-2015 20:28:27 +0000: DISCOVERY: (retrieve_addressbooks) found abook: Robert's Addressbook at http://bote.dyn.robewald.de:80/davical/caldav.php/robert/addresses/
20-Jan-2015 20:28:27 +0000: BACKEND: (cd_save) ADDING ABOOK Array
(
[href] => http://bote.dyn.robewald.de:80/davical/caldav.php/robert/addresses/
[name] => Robert's Addressbook
)

[20-Jan-2015 20:28:30 +0000]: BACKEND: (cdfopen) refreshdb_from_server requesting http://bote.dyn.robewald.de:80/davical/caldav.php/robert/addresses/ [RL 5]
[20-Jan-2015 20:28:30 +0000]: BACKEND: (update_addressbook) UPDATE addressbook 9
[20-Jan-2015 20:28:30 +0000]: BACKEND: (cdfopen) Code: 207
[20-Jan-2015 20:28:30 +0000]: BACKEND: (cdfopen) list_records_sync_collection requesting http://bote.dyn.robewald.de:80/davical/caldav.php/robert/addresses/ [RL 5]
[20-Jan-2015 20:28:30 +0000]: BACKEND: (update_addressbook) UPDATE addressbook 9
[20-Jan-2015 20:28:30 +0000]: BACKEND: (cdfopen) Code: 207
[20-Jan-2015 20:28:30 +0000]: BACKEND: (cdfopen) query_addressbook_multiget requesting http://bote.dyn.robewald.de:80/davical/caldav.php/robert/addresses/ [RL 5]
[20-Jan-2015 20:28:30 +0000]: BACKEND: (update_addressbook) UPDATE addressbook 9
[20-Jan-2015 20:28:30 +0000]: BACKEND: (cdfopen) Code: 207
[20-Jan-2015 20:28:30 +0000]: BACKEND: (dbstore_base) INSERT card /davical/caldav.php/robert/addresses/2CE6F551-7BF7C0A6-06C5FB48.vcf
[20-Jan-2015 20:28:30 +0000]: BACKEND: (delete_unseen) deleted 0 contacts during server refresh
[20-Jan-2015 20:28:30 +0000]: BACKEND: (delete_unseen) deleted 0 groups during server refresh
[20-Jan-2015 20:28:30 +0000]: BACKEND: (refreshdb_from_server) server refresh took 0 seconds

Infinite loop if address book doesn't exists

Hi,

I'm using this plugin to allow my users to access their Owncloud address book directly from Roundcube. Authentification in Roundcube and Owncloud is centralized with LDAP so can I use a preset in config.inc.php.

Everything works fine except one thing. If a new user try to log in Roundcube first (so his owncloud account is not created yet, and owncloud do not return an address book with carddav), the login loops until server times out.

With RCMCardDav 0.9.2 and RoundCube 1.0.0-rc1, commenting this line https://github.com/blind-coder/rcmcarddav/blob/master/carddav_common.php#L212 was making things better. Login was working every time. In RoundCube 1.0.0, this trick doesn't work anymore. So I updated RCMCardDav to 1.0.0, but the bug is still here.

The strange thing is that, sometimes, the login works… Maybe one out of five. I can't find any pattern to explain that.

This is my carddav config:

$prefs['Owncloud'] = array(
    'name'     => 'Cloud',
    'username' => '%u',
    'password' => '%p',
    'url'      => 'https://example.com/remote.php/carddav/addressbooks/%u/',
    'carddav_name_only' => true,

    'active'   => true,
    'readonly' => false,
    'preemptive_auth' => 1,

    'fixed' => array ('username', 'password', 'url', 'preemptive_auth', 'refresh_time'),
    'hide' => true,
);

What do you think ?

Invalid HTTP requests

I use Roundcube Webmail 1.0.3 and rcmcarddav 1.0.0 (2014-04-09). Everything works OK. Nevertheless rcmcarddav sends invalid, malformed and redundand HTTP requests to CalDAV server.

80.79.*.* server:8443 - [11/Nov/2014:00:36:37 +0100] "PROPFIND /card.php/addressbooks/john.appleseed%40example.com/default/ HTTP/1.1" 401 304 "-" "RCM CardDAV plugin/1.0.0"
80.79.*.* - - [11/Nov/2014:00:36:37 +0100] " / HTTP/1.1" 501 357 "-" "-"

80.79.*.* server:8443 - [11/Nov/2014:00:36:37 +0100] "PROPFIND /card.php/addressbooks/john.appleseed%40example.com/default/ HTTP/1.1" 207 848 "-" "RCM CardDAV plugin/1.0.0"
80.79.*.* - - [11/Nov/2014:00:36:37 +0100] " / HTTP/1.1" 501 357 "-" "-"

80.79.*.* server:8443 - [11/Nov/2014:00:36:37 +0100] "PROPFIND /card.php/addressbooks/john.appleseed%40example.com/default/ HTTP/1.1" 401 304 "-" "RCM CardDAV plugin/1.0.0"
80.79.*.* - - [11/Nov/2014:00:36:37 +0100] " / HTTP/1.1" 501 357 "-" "-"

80.79.*.* server:8443 - [11/Nov/2014:00:36:37 +0100] "PROPFIND /card.php/addressbooks/john.appleseed%40example.com/default/ HTTP/1.1" 207 42646 "-" "RCM CardDAV plugin/1.0.0"
80.79.*.* - - [11/Nov/2014:00:36:37 +0100] " / HTTP/1.1" 501 357 "-" "-"

No addressbook found

Hi all, I'm using owncloud 7.0.3, and the latest version of rcmcarddav (cloned from master). I followed the instructions in INSTALL and seems to have the plugin working. But when I enter my credentials, the name of the addressbook (in this case just "contacts"), supply the carddav url https://mycloud.com/remote.php/carddav/addressbooks/ausername/contacts and tick the box "Preemptively authenticate against server. Use for ownCloud!" I revieve an error popup saying "An error occured. Contacts, no addressbook found." Does this plugin require carddav_plus?

contacts can not be changed when using davical 0.9.9 as backend

I am using davical 0.9.9 as Backend and can view my contact list but I am not able to create new contacts nor change existing ones.
Error log shows:

25-Apr-2014 00:42:46 +0100]: BACKEND: (cdfopen) Could not read reply header: authentication error: 412 Precondition Failed
[25-Apr-2014 00:42:46 +0100]: BACKEND: (update) Updating card on server failed

And Davical complains:

 LOG: response:-->  Incorrect content type for addressbook: text/vcard;charset=utf-8

I've investigated into this problem and solved the issue by making a small modification in carddav_backend.php:

        $opts = array(
                'method'=>"PUT",
                'content'=>$vcf,
                'header'=> array(
                //      "Content-Type: text/vcard;charset=utf-8",
                        "Content-Type: text/vcard; charset=\"UTF-8\"",    // Bug! missing space causes problems with davical 0.9
                        $matchhdr,
                ),

Unfortunately, I do not have any access to other backend servers, so I can not test if the modification has side effects on other systems.

PUT works / UPDATE and DELETE doesn't

My CardDAV-Backend is Radicale 0.8. Roundcube 1.0 with rcmcarddav 1.0. The CardDAV-Addressbook is configured with preemtive_auth on.

In Roundcube I can create a new contact, but I can't delete nor change an existing contact. Where is the problem? How can I debug this correctly?

Pop-up Error during saving contact (first time)

Hello,
Each time, when i save a contact for the first time a pop up appear with the text (An error has occurred during recording) but if i refresh... no problem the contact appear (sometimes twice or more) and i could do modify, delete, etc... without error pop up screen (roundcube 1.0.1 - Os x server 3.2.1 (10.9.3) ) Thanks you for your help

Roundcube 1.0.2 - CardDAV - Baikal 0.2.7: No connect to Adressbook

Hello,

i need urgend help for my connection problem. What is exactly the URL, which i have to write in the backup of CardDAV for Roundcube, that CardDAV will find my adressbooks ?

here my logfile:

06-Aug-2014 22:50:17 +0800: DISCOVERY: (cdfopen) retrieve_addressbooks requesting https://www.fqdn.tld:443/mybaikal/card.php/addressbooks/holger/default/ RL 5: DISCOVERY: (cdfopen) SendRequest: http_class::__set_state(array(
'host_name' => 'www.fqdn.tld',
'host_port' => 443,
'proxy_host_name' => '',
'proxy_host_port' => 80,
'socks_host_name' => '',
'socks_host_port' => 1080,
'socks_version' => '5',
'protocol' => 'https',
'request_method' => 'PROPFIND',
'user_agent' => 'RCM CardDAV plugin/1.0.0',
'accept' => '',
'authentication_mechanism' => '',
'user' => NULL,
'password' => NULL,
'realm' => NULL,
'workstation' => NULL,
'proxy_authentication_mechanism' => '',
'proxy_user' => NULL,
'proxy_password' => NULL,
'proxy_realm' => NULL,
'proxy_workstation' => NULL,
'request_uri' => '/mybaikal/card.php/addressbooks/holger/default/',
'request' => 'PROPFIND /mybaikal/card.php/addressbooks/holger/default/ HTTP/1.1',
'request_headers' =>
array (
'Host' => 'www.fqdn.tld:443',
'User-Agent' => 'RCM CardDAV plugin/1.0.0',
'Depth' => '0',
'Content-Type' => 'application/xml; charset="utf-8"',
'Authorization' => 'Basic aG9sZ2VyOjE0dWExNG0=',
'Connection' => 'Keep-Alive',
'Content-Length' => 241,
),
'request_user' => 'holger',
'request_password' => 'mysecretpassword',
'request_realm' => NULL,
'request_workstation' => NULL,
'proxy_request_user' => NULL,
'proxy_request_password' => NULL,
'proxy_request_realm' => NULL,
'proxy_request_workstation' => NULL,
'request_body' => '
<D:propfind xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"><D:prop>
<D:current-user-principal/>
<D:resourcetype />
<D:displayname />
<C:addressbook-home-set/>
/D:prop/D:propfind
',
'request_arguments' =>
array (
'Protocol' => 'https',
'HostName' => 'www.fqdn.tld',
'Headers' =>
array (
'Host' => 'www.fqdn.tld:443',
'User-Agent' => 'RCM CardDAV plugin/1.0.0',
'Depth' => '0',
'Content-Type' => 'application/xml; charset="utf-8"',
'Authorization' => 'Basic aG9sZ2VyOjE0dWExNG0=',
'Connection' => 'Keep-Alive',
),
'AuthUser' => 'holger',
'AuthPassword' => 'mysecretpassword',
'HostPort' => 443,
'RequestURI' => '/mybaikal/card.php/addressbooks/holger/default/',
'RequestMethod' => 'PROPFIND',
'Body' => '
<D:propfind xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"><D:prop>
<D:current-user-principal/>
<D:resourcetype />
<D:displayname />
<C:addressbook-home-set/>
/D:prop/D:propfind
',
),
'protocol_version' => '1.1',
'timeout' => 120,
'data_timeout' => 0,
'debug' => 0,
'log_debug' => 0,
'debug_response_body' => 1,
'html_debug' => 0,
'support_cookies' => 1,
'cookies' =>
array (
),
'error' => '',
'error_code' => 0,
'exclude_address' => '',
'follow_redirect' => 0,
'redirection_limit' => 5,
'response_status' => '',
'response_message' => '',
'file_buffer_length' => 8000,
'force_multipart_form_post' => 0,
'prefer_curl' => 1,
'keep_alive' => 1,
'sasl_authenticate' => 1,
'state' => 'RequestSent',
'use_curl' => true,
'connection' => NULL,
'content_length' => 0,
'response' => 'HTTP/1.1 401 Unauthorized
Date: Wed, 06 Aug 2014 14:50:17 GMT
Server: Apache
X-Powered-By: PHP/5.3.28
Set-Cookie: PHPSESSID=e2178f3c67a9038954eb30a3935ce76b; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
WWW-Authenticate: Digest realm="BaikalDAV",qop="auth",nonce="53e240a95e47f",opaque="df58bdff8cf60599c939187d0b5c54de"
Content-Length: 292
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: application/xml; charset=utf-8

<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DAV\Exception\NotAuthenticated/s:exception
<s:message>No digest authentication headers were found/s:message
<s:sabredav-version>1.8.7/s:sabredav-version
/d:error
',
'read_response' => 0,
'read_length' => 0,
'request_host' => 'www.fqdn.tld:443',
'next_token' => '',
'redirection_level' => 0,
'chunked' => 0,
'remaining_chunk' => 0,
'last_chunk_read' => 0,
'months' =>
array (
'Jan' => '01',
'Feb' => '02',
'Mar' => '03',
'Apr' => '04',
'May' => '05',
'Jun' => '06',
'Jul' => '07',
'Aug' => '08',
'Sep' => '09',
'Oct' => '10',
'Nov' => '11',
'Dec' => '12',
),
'session' => 'f1bd21e592a93708b71cf83cfd2f2920',
'connection_close' => 0,
'force_close' => 0,
'connected_host' => 'www.fqdn.tld',
'connected_port' => 443,
'connected_ssl' => 1,
))
06-Aug-2014 22:50:17 +0800: DISCOVERY: (cdfopen) Code: 200
06-Aug-2014 22:50:17 +0800: DISCOVERY: (cdfopen) success: array (
'status' => '200',
'headers' =>
array (
'http/1.1 200 ok' => '',
'date' => 'Wed, 06 Aug 2014 14:50:17 GMT',
'server' => 'Apache',
'x-powered-by' => 'PHP/5.3.28',
'vary' => 'Accept-Encoding',
'content-length' => '326',
'content-type' => 'text/html',
),
'body' => '

<script type=\'text/javascript\'> location.href = \'http://www.fqdn.tld:1807/\'; </script>
</head>
', )

06-Aug-2014 22:50:17 +0800: DISCOVERY: (cdfopen) retrieve_addressbooks requesting https://www.fqdn.tld:443/.well-known/carddav RL 5: DISCOVERY: (cdfopen) SendRequest: http_class::__set_state(array(
'host_name' => 'www.fqdn.tld',
'host_port' => 443,
'proxy_host_name' => '',
'proxy_host_port' => 80,
'socks_host_name' => '',
'socks_host_port' => 1080,
'socks_version' => '5',
'protocol' => 'https',
'request_method' => 'PROPFIND',
'user_agent' => 'RCM CardDAV plugin/1.0.0',
'accept' => '',
'authentication_mechanism' => '',
'user' => NULL,
'password' => NULL,
'realm' => NULL,
'workstation' => NULL,
'proxy_authentication_mechanism' => '',
'proxy_user' => NULL,
'proxy_password' => NULL,
'proxy_realm' => NULL,
'proxy_workstation' => NULL,
'request_uri' => '/.well-known/carddav',
'request' => 'PROPFIND /.well-known/carddav HTTP/1.1',
'request_headers' =>
array (
'Host' => 'www.fqdn.tld:443',
'User-Agent' => 'RCM CardDAV plugin/1.0.0',
'Depth' => '0',
'Content-Type' => 'application/xml; charset="utf-8"',
'Authorization' => 'Basic aG9sZ2VyOjE0dWExNG0=',
'Connection' => 'Keep-Alive',
'Content-Length' => 241,
),
'request_user' => 'holger',
'request_password' => 'mysecretpassword',
'request_realm' => NULL,
'request_workstation' => NULL,
'proxy_request_user' => NULL,
'proxy_request_password' => NULL,
'proxy_request_realm' => NULL,
'proxy_request_workstation' => NULL,
'request_body' => '
<D:propfind xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"><D:prop>
<D:current-user-principal/>
<D:resourcetype />
<D:displayname />
<C:addressbook-home-set/>
/D:prop/D:propfind
',
'request_arguments' =>
array (
'Protocol' => 'https',
'HostName' => 'www.fqdn.tld',
'Headers' =>
array (
'Host' => 'www.fqdn.tld:443',
'User-Agent' => 'RCM CardDAV plugin/1.0.0',
'Depth' => '0',
'Content-Type' => 'application/xml; charset="utf-8"',
'Authorization' => 'Basic aG9sZ2VyOjE0dWExNG0=',
'Connection' => 'Keep-Alive',
),
'AuthUser' => 'holger',
'AuthPassword' => 'mysecretpassword',
'HostPort' => 443,
'RequestURI' => '/.well-known/carddav',
'RequestMethod' => 'PROPFIND',
'Body' => '
<D:propfind xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"><D:prop>
<D:current-user-principal/>
<D:resourcetype />
<D:displayname />
<C:addressbook-home-set/>
/D:prop/D:propfind
',
),
'protocol_version' => '1.1',
'timeout' => 120,
'data_timeout' => 0,
'debug' => 0,
'log_debug' => 0,
'debug_response_body' => 1,
'html_debug' => 0,
'support_cookies' => 1,
'cookies' =>
array (
),
'error' => '',
'error_code' => 0,
'exclude_address' => '',
'follow_redirect' => 0,
'redirection_limit' => 5,
'response_status' => '',
'response_message' => '',
'file_buffer_length' => 8000,
'force_multipart_form_post' => 0,
'prefer_curl' => 1,
'keep_alive' => 1,
'sasl_authenticate' => 1,
'state' => 'RequestSent',
'use_curl' => true,
'connection' => NULL,
'content_length' => 0,
'response' => 'HTTP/1.1 405 Method Not Allowed
Date: Wed, 06 Aug 2014 14:50:17 GMT
Server: Apache
Allow: GET,HEAD,POST,OPTIONS
Vary: Accept-Encoding
Content-Length: 316
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1

<title>405 Method Not Allowed</title>

Method Not Allowed

The requested method PROPFIND is not allowed for the URL /.well-known/carddav.


Apache Server at www.fqdn.tld Port 443 ', 'read_response' => 0, 'read_length' => 0, 'request_host' => 'www.fqdn.tld:443', 'next_token' => '', 'redirection_level' => 0, 'chunked' => 0, 'remaining_chunk' => 0, 'last_chunk_read' => 0, 'months' => array ( 'Jan' => '01', 'Feb' => '02', 'Mar' => '03', 'Apr' => '04', 'May' => '05', 'Jun' => '06', 'Jul' => '07', 'Aug' => '08', 'Sep' => '09', 'Oct' => '10', 'Nov' => '11', 'Dec' => '12', ), 'session' => '67093b585c83b81f9ac8cf5cb598be64', 'connection_close' => 0, 'force_close' => 0, 'connected_host' => 'www.fqdn.tld', 'connected_port' => 443, 'connected_ssl' => 1, )) [06-Aug-2014 22:50:17 +0800](DISCOVERY:): DISCOVERY: (cdfopen) Code: 405 [06-Aug-2014 22:50:17 +0800](DISCOVERY:): DISCOVERY: (cdfopen) success: array ( 'status' => '405', 'headers' => array ( 'http/1.1 405 method not allowed' => '', 'date' => 'Wed, 06 Aug 2014 14:50:17 GMT', 'server' => 'Apache', 'allow' => 'GET,HEAD,POST,OPTIONS', 'vary' => 'Accept-Encoding', 'content-length' => '316', 'keep-alive' => 'timeout=15, max=100', 'connection' => 'Keep-Alive', 'content-type' => 'text/html; charset=iso-8859-1', ), 'body' => ' <title>405 Method Not Allowed</title>

Method Not Allowed

The requested method PROPFIND is not allowed for the URL /.well-known/carddav.


Apache Server at www.fqdn.tld Port 443 ', )

06-Aug-2014 22:50:17 +0800: DISCOVERY: (cdfopen) retrieve_addressbooks requesting https://www.fqdn.tld:443/ [RL 5]
[06-Aug-2014 22:50:18 +0800]: DISCOVERY: (cdfopen) SendRequest: http_class::__set_state(array(
'host_name' => 'www.fqdn.tld',
'host_port' => 443,
'proxy_host_name' => '',
'proxy_host_port' => 80,
'socks_host_name' => '',
'socks_host_port' => 1080,
'socks_version' => '5',
'protocol' => 'https',
'request_method' => 'PROPFIND',
'user_agent' => 'RCM CardDAV plugin/1.0.0',
'accept' => '',
'authentication_mechanism' => '',
'user' => NULL,
'password' => NULL,
'realm' => NULL,
'workstation' => NULL,
'proxy_authentication_mechanism' => '',
'proxy_user' => NULL,
'proxy_password' => NULL,
'proxy_realm' => NULL,
'proxy_workstation' => NULL,
'request_uri' => '/',
'request' => 'PROPFIND / HTTP/1.1',
'request_headers' =>
array (
'Host' => 'www.fqdn.tld:443',
'User-Agent' => 'RCM CardDAV plugin/1.0.0',
'Depth' => '0',
'Content-Type' => 'application/xml; charset="utf-8"',
'Authorization' => 'Basic aG9sZ2VyOjE0dWExNG0=',
'Connection' => 'Keep-Alive',
'Content-Length' => 241,
),
'request_user' => 'holger',
'request_password' => 'mysecretpassword',
'request_realm' => NULL,
'request_workstation' => NULL,
'proxy_request_user' => NULL,
'proxy_request_password' => NULL,
'proxy_request_realm' => NULL,
'proxy_request_workstation' => NULL,
'request_body' => '
<D:propfind xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"><D:prop>
<D:current-user-principal/>
<D:resourcetype />
<D:displayname />
<C:addressbook-home-set/>
/D:prop/D:propfind
',
'request_arguments' =>
array (
'Protocol' => 'https',
'HostName' => 'www.fqdn.tld',
'Headers' =>
array (
'Host' => 'www.fqdn.tld:443',
'User-Agent' => 'RCM CardDAV plugin/1.0.0',
'Depth' => '0',
'Content-Type' => 'application/xml; charset="utf-8"',
'Authorization' => 'Basic aG9sZ2VyOjE0dWExNG0=',
'Connection' => 'Keep-Alive',
),
'AuthUser' => 'holger',
'AuthPassword' => 'mysecretpassword',
'HostPort' => 443,
'RequestURI' => '/',
'RequestMethod' => 'PROPFIND',
'Body' => '
<D:propfind xmlns:D="DAV:" xmlns:C="urn:ietf:params:xml:ns:carddav"><D:prop>
<D:current-user-principal/>
<D:resourcetype />
<D:displayname />
<C:addressbook-home-set/>
/D:prop/D:propfind
',
),
'protocol_version' => '1.1',
'timeout' => 120,
'data_timeout' => 0,
'debug' => 0,
'log_debug' => 0,
'debug_response_body' => 1,
'html_debug' => 0,
'support_cookies' => 1,
'cookies' =>
array (
),
'error' => '',
'error_code' => 0,
'exclude_address' => '',
'follow_redirect' => 0,
'redirection_limit' => 5,
'response_status' => '',
'response_message' => '',
'file_buffer_length' => 8000,
'force_multipart_form_post' => 0,
'prefer_curl' => 1,
'keep_alive' => 1,
'sasl_authenticate' => 1,
'state' => 'RequestSent',
'use_curl' => true,
'connection' => NULL,
'content_length' => 0,
'response' => 'HTTP/1.1 200 OK
Date: Wed, 06 Aug 2014 14:50:17 GMT
Server: Apache
X-Powered-By: PHP/5.3.28
Vary: Accept-Encoding
Content-Length: 326
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html

<script type=\'text/javascript\'> location.href = \'http://www.fqdn.tld:1807/\'; </script>
</head>
', 'read_response' => 0, 'read_length' => 0, 'request_host' => 'www.fqdn.tld:443', 'next_token' => '', 'redirection_level' => 0, 'chunked' => 0, 'remaining_chunk' => 0, 'last_chunk_read' => 0, 'months' => array ( 'Jan' => '01', 'Feb' => '02', 'Mar' => '03', 'Apr' => '04', 'May' => '05', 'Jun' => '06', 'Jul' => '07', 'Aug' => '08', 'Sep' => '09', 'Oct' => '10', 'Nov' => '11', 'Dec' => '12', ), 'session' => '673e8125f3219c2273182f0d0c189ccf', 'connection_close' => 0, 'force_close' => 0, 'connected_host' => 'www.fqdn.tld', 'connected_port' => 443, 'connected_ssl' => 1, )) [06-Aug-2014 22:50:18 +0800]: DISCOVERY: (cdfopen) Code: 200 [06-Aug-2014 22:50:18 +0800]: DISCOVERY: (cdfopen) success: array ( 'status' => '200', 'headers' => array ( 'http/1.1 200 ok' => '', 'date' => 'Wed, 06 Aug 2014 14:50:17 GMT', 'server' => 'Apache', 'x-powered-by' => 'PHP/5.3.28', 'vary' => 'Accept-Encoding', 'content-length' => '326', 'keep-alive' => 'timeout=15, max=100', 'connection' => 'Keep-Alive', 'content-type' => 'text/html', ), 'body' => ' <script type=\'text/javascript\'> location.href = \'http://www.fqdn.tld:1807/\'; </script>
</head>
', )

Kind regards
Hassan

SQL patch files

Would it be possible to start adding SQL patch scripts to dbinit folder, and record the applied patches in a database table? MyRoundcube has a nice solution for that:

  • original database SQL file is named: pgsql.initial.sql
  • patch files are named: pgsql.YYYYMMDD.sql
  • apart from the patch itself (ALTER TABLE....), the files contain something like: UPDATE "system" SET value='initial|20130903' WHERE name='myrc_carddav';
  • patch files must be applied in date order

Obviously, we don't want any "myrc" references, and the choice for the table name "system" is a little strange, but actually their solution is quite handy.

This way we even could apply the new SQL patches automatically when installing a plugin update (look which patch files are there now, which ones are already applied, do the new ones). I am already working on a shell script for that.

Best regards,
Erik

calendarserver: No connect to addressbook

I´m just using calendarserver and with MacOS, iOS and Android and everything works but if I want to setup RCM with latest (git) version von carddav plugin I couldn´t set up my account.

The URL is: https://SERVERNAME:8443/addressbooks/**uids**/862350ad-2480-52a9-bd38-80a56ccef907/addressbook/ and if I connect to this URL via browser I get an authentification web site and after login I could see a list of all .vcf. But after setting up in RCM I could see in carddav.warn

DISCOVERY: (cdfopen) Could not read reply header: authentication error: 400 Bad Request

and in my calendarserver logfile I could see

"PROPFIND /addressbooks/uids/862350ad-2480-52a9-bd38-80a56ccef907/addressbook/ HTTP/1.1" 401 141 "-" "RCM CardDAV plugin/1.0.0" i=1 t=12.0 or=8
"PROPFIND /.well-known/carddav HTTP/1.1" 301 157 "-" "RCM CardDAV plugin/1.0.0" i=0 t=5.3 or=8
"PROPFIND / HTTP/1.1" 207 630 "-" "RCM CardDAV plugin/1.0.0" i=1 t=2.3 or=8
"PROPFIND /.well-known/carddav HTTP/1.1" 301 157 "-" "RCM CardDAV plugin/1.0.0" i=0 t=4.2 or=8
"PROPFIND / HTTP/1.1" 207 1171 "-" "RCM CardDAV plugin/1.0.0" i=1 t=5.9 or=8
"PROPFIND / HTTP/1.1" 207 630 "-" "RCM CardDAV plugin/1.0.0" i=0 t=2.3 or=8
"PROPFIND / HTTP/1.1" 207 1171 "-" "RCM CardDAV plugin/1.0.0" i=1 t=5.8 or=8

😰

Better visibility/control on synchronisation status

[enhancement request]

Implement tools to show/control the synchronisation status to the carddav server :

  • "Sync now" button
  • "Last successfull synchronisation on date:hour" message, next synchronisation in X minutes, error message of last synchronisation error...
  • list of synchronized contacts (popup?), list of not-yet-synchronized contacts

During initial setup, it is currently hard to figure what goes wrong (adress of the carddav server, no synchronisation yet...). For everyday-use, we don't know when the synchro will happen. I can force synchro on my android phone (davdroid+baikal), but I can't on my PC through roundcube.

CardDav username shown as %l

Hi,

In my RoundCube setup (1.0.1), I got a small issue.
I configured config.inc.php to have all my users having the CardDav connector already set up. Everything is well, but when I go to Preferences/CardDav menu, I can see that username is shown as "%l". Of course it should display something like "john_doe" instead.
I think this is just a minor escape/interpretation issue, but as I have no skill with PHP, I let you confirm and fix.

Thanks again for this very nice plugin.

Btw, do you plan to prepare a CalDav one ?

Please implement support of IM fields

Hi
Currently carddav plugin does not show IM data (Jabber, ICQ, ...) in "Contact properties" for contacts that already have such fields. And there is no "IM" option under "Add field..." menu in "Add new contact" while in default adressbook "Personal Addresses" we can add IM fields.

Creation of new records not working with DaViCal 1.1.0

Hi,

I am running roundcube master, rcmcarddav master and davical 1.1.0.

Creation of a new record does throw out an error message ("An error occured", "An error occured while saving"). Subsequently the new address is not shown in roundcube carddav addressbok, but it is available on server (can download new record with other clients).

Have an perfectly running old version of roundcube and rcmcarddav with the same davical server, so I suspect it to be rather on client side.

Debug-Log: https://gist.github.com/imlich/3cf58b242f99b175f9ae

If needed can supply test-account on either the davical side or the roundcube side.

Password not in sync

I tried this multiple times, really puzzled what is going on.
(using branch auto_db_migrate, either 18dec14 or 06jan15 version).

  1. Remove rcmcarddav installation completely, including all related database tables.
  2. Install rcmcarddav from scratch, with predefined addressbook in config.inc.php using %u and %p.
  3. Start Roundcube with User/Password => predefined CardDAV addressbook is visible.
    So far so good.

But now the same, but before installing rcmmarddav I change password of the Roundcube user.

  1. Remove rcmcarddav installation completely, including all related database tables.
  2. Change User's password to NewPassword on my Synology NAS, using standard DSM web interface.
  3. Start Roundcube with User/NewPassword => Works fine
  4. Install rcmcarddav from scratch, with predefined addressbook in config.inc.php using %u and %p.
  5. Start Roundcube with User/NewPassword => Works as before, but no CardDAV addressbook :-(
    6a) Test 1:
    • Manually add CardDAV addressbook in Roundcube with fixed User and NewPassword => Error, cannot add addressbook
    • Manually add CardDAV addressbook in Roundcube with fixed User and OldPassword(!!) => CardDAV addressbook is visible
      6b) ==OR== Test 2:
    • Change User's password back to OldPassword (using Synology DSM web interface again)
    • Start Roundcube with User/NewPassword => predefined CardDAV addressbook is visible right away
  6. Change User's password to AnotherNewPassword on my Synology NAS, using standard DSM web interface
  7. Start Roundcube with User/AnotherNewPassword => CardDAV addressbook remains visible

It seems to me that rcmcarddav initially uses the old password (wherever that may be stored!).

Note:
I tried closing the browser in between each action, and I tried removing cookies, same problem.

Unable to get preset addressbooks working

Hi,

I am unable to get global configuration working ; I had configured config.inc.php with my settings but when in RC, the configuration is not present.
Here is my config.inc.php :

'Personnel', // will be substituted for the roundcube username 'username' => '%u', // will be substituted for the roundcube password 'password' => '%p', // %u will be substituted for the CardDAV username //      'url'          =>  'https://ical.example.org/caldav.php/%u/Personal',                                                 'url'          =>  'https://myowncloudwebserver/remote.php/carddav',                                           ``` 'active' => true, 'readonly' => false, 'refresh_time' => '01:00:00', 'fixed' => array( 'username' ), 'hide' => false, 'preemptive_auth' => true, ``` ); $prefs['Work'] = array( 'name' => 'Corporate', 'username' => 'CorpUser', 'password' => 'C0rpPasswo2d', 'readonly' => true, 'url' => 'https://calendar.domain.com:8843/caldav.php/CorpUser/addresses', 'fixed' => array( 'name', 'username', 'password', 'url', 'readonly' ), ); ?>

Did I miss something ?
Regards

Preset adressbook not working

Hey,

I've got the same issue as #50. But in my case, there is no other plugin version but a current clone of this repository.
Unfortunately I'm not getting my preset in the config.inc.php to work. Although, if I put the same information in the appropriate database fields in mysql, the plugin is able to connect and show the right data. Since this is just a per-user workaround I'd be glad to get it to work for all users.

My preset looks like this:

$prefs['Cloud'] = array(
        'name'         =>  'Owncloud',
        'username'     =>  '%u',
        'password'     =>  '%p',
        'url'          =>  'https://cloud.example.de:443/remote.php/carddav/addressbooks/%u/kontakte/',

        'active'       =>  true,
        'readonly'     =>  false,
        'refresh_time' => '00:01:00',

        'fixed'        =>  array( 'username', 'password', 'url' ),
        'hide'        =>  false,
);

Do you have any ideas?

Thanks!

no contacts are shown because of PHP error in uksort ()

I try to connect to an iCloud carddav server with correct values (plugging starts loading all contacts) but after loading no contact is displayed. I found this error message:

[02-Sep-2014 19:20:21 UTC] PHP Warning: usort() expects parameter 2 to be a valid callback, no array or string given in /home/htdocs/webmail/html/plugins/carddav/carddav_discovery.php on line 220
[02-Sep-2014 19:20:38 UTC] PHP Warning: uksort() expects parameter 2 to be a valid callback, no array or string given in /home/htdocs/webmail/html/plugins/carddav/inc/sabre-vobject/lib/Sabre/VObject/Component.php on line 284

I am using rcm 1.02 with your latest plugin version. PHP 5.4.4 (debian 7.6). I guess it is a problem with PHP 5.4 ...

Gerald

Error mysql.sql v1.0.0 when upgrading

I upgraded to version 1.0.0 and when I execute (as root) the mysql.sql I get:

mysql> source mysql.sql;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

Query OK, 0 rows affected, 1 warning (0.00 sec)

ERROR 1005 (HY000): Can't create table 'roundcube.carddav_group_user' (errno: 150)

The tables in the roundcube database look like this:

+----------------------+
| Tables_in_roundcube  |
+----------------------+
| cache                |
| cache_index          |
| cache_messages       |
| cache_shared         |
| cache_thread         |
| carddav_addressbooks |
| carddav_contacts     |
| carddav_groups       |
| carddav_server       |
| carddav_xsubtypes    |
| contactgroupmembers  |
| contactgroups        |
| contacts             |
| dictionary           |
| events               |
| events_cache         |
| events_caldav        |
| identities           |
| reminders            |
| searches             |
| session              |
| system               |
| users                |
+----------------------+
23 rows in set (0.00 sec)

What can I do to fix this problem?

Contacts are not displayed even though they are in the database

Roundcube 1.0.5 running on OS X Server 10.10 with PHP 5.5.14 and PostgerSQL 9.4

I successfully installed the plugin and it imported my contacts as well. However, none of the contacts would show up in the address book. Examining the database shows they are in there.

The problem is in the num_rows() function. Replacing all calls to num_rows() with count($result->fetchAll()) and using that value fixes the problem. I'm not sure what is going on with the num_rows() function in rcube_db.php, but it doesn't appear to be used in the roundcube code.

Automatically remove deleted address books.

I'm using this plugin with ownCloud and auto-discovery of address books which is working fine. Newly created address books in ownCloud are automatically added in Roundcube.

However, if an address book is deleted on ownCloud, it is not removed completely from Roundcube. Instead it will show up as an empty group (Roundcube calls address books "groups"). It will also still appear in the CardDAV settings in Roundcube with no way for the user to delete it.

My auto discovery preset:

$prefs['ownCloud'] = array(
    'name'         =>  'ownCloud',
    'username'     =>  '%l',
    'password'     =>  '%p',
    'url'          =>  'https://cloud.example.com/remote.php/carddav/addressbooks/%l/',
    'carddav_name_only' => true,
    'active'       =>  true,
    'readonly'     =>  false,
    'refresh_time' => '00:05:00',
    'preemptive_auth' => true,

    'fixed'        =>  array( 'username', 'password', 'refresh_time', 'preemptive_auth' ),
    'hide'         =>  false,
);

preset does not work for me between roundcube-1.0.2 and owncloud-7.0.3

I run the mentioned packages on gentoo linux, with a current checkout of this plugin.

My config.inc.php:

cat /var/www/localhost/htdocs/roundcube/plugins/carddav/config.inc.php

'Owncloud', 'username' => '%u', 'password' => '%p', 'url' => 'https://mail.my.tld/owncloud/remote.php/carddav/addressbooks/%u/kontakte/', 'active' => true, 'readonly' => true, 'refresh_time' => '00:01:00', 'fixed' => array( 'username', 'password', 'url' ), 'hide' => false, 'preemptive_auth' => 1, ); I don't see errors in /var/www/localhost/htdocs/roundcube/logs/errors ... and I don't see the carddav-addressbook in the roundcube-GUI. Pls advise what to try or provide to help solving this, thanks! greets from austria, Stefan

Content-Type setting for PUT - add a space

in carddav_backend.php the content-type is set through

"Content-Type: text/vcard;charset=utf-8"

which causes DaViCal omits annoying warnings in the Logfile which can be avoided by adding a space.

"Content-Type: text/vcard; charset=utf-8"

This is more a bug in the parsing of DaViCal, but giving current developing stage of it, I'd appreciate to have this changed here, as it will not harm others.

practical experience Roundcube 1.0.3 - CardDAV (Branch 51) ?

Hi there,

today i read, that there is an update for Roundcube to version 1.0.3.
Because i use version 1.0.2 with CardDAV Branch 51, and everything works fine, my question is about practical experience with the teamwork Roundcube 1.0.3 an CardDAV Branch 51.

Have someone made an update and is everything running well ?

SQL drop files

To start from scratch (or remove rcmcarddav from the system permanently), it would be handy having an SQL script to delete all CardDAV database tables. The "postgres.sql" script could look something like this:

DROP TABLE IF EXISTS carddav_group_user;

DROP TABLE IF EXISTS carddav_groups;
DROP SEQUENCE IF EXISTS carddav_groups_seq;

DROP TABLE IF EXISTS carddav_xsubtypes;
DROP SEQUENCE IF EXISTS carddav_xsubtypes_seq;

DROP INDEX IF EXISTS carddav_contacts_abook_id_idx;
DROP TABLE IF EXISTS carddav_contacts;
DROP SEQUENCE IF EXISTS carddav_contacts_seq;

DROP TABLE IF EXISTS carddav_addressbooks;
DROP SEQUENCE IF EXISTS carddav_addressbooks_seq;

DROP TABLE IF EXISTS carddav_migrations;
DROP SEQUENCE IF EXISTS carddav_migrations_seq;

I would suggest putting the scripts in new folder "dbdrop".

postgres.sql value "auto" must be in single quotes

Checked out the issue_51 branch.

When running postgres.sql on my Synology NAS (DSM 5.0), I get an error on line 23 that column "auto" does not exist. Changing to 'auto' (with single quotes) solved this issue.

Error with Google Contacts

Does this plugin still work with Google Contacts?

I get the following error in the carddav logfile:

<errors xmlns="http://schemas.google.com/g/2005"> <error> <domain>GData</domain> <code>required</code> <location type="header">Authorization</location> <internalReason>Login Required</internalReason> </error> </errors>

Database error connection

Hi,

when I enable the plugin I have an error message

DATABASE ERROR: CONNECTION FAILED!

Unable to connect to the database!
Please contact your server-administrator.

The logs say

[23-May-2014 14:52:08 +0200]: DB Error: [1146] Table 'db.rc_carddav_addressbooks' doesn't exist (GET /)

I try to copy-paste the SQL code in phpMyAdmin but then I have the following error message:

1005 - Can't create table 'db.carddav_addressbooks' (errno: 150) (Détails…)

Can you help me to fix this please? Thanks!

Connection using SSL proxy does not work

I have owncloud running over a SSL-proxy. Ever since I enabled it, carddav plugin stopped working. I manually deleted existing addressbooks and tried adding new ones using the new URL, but despite the message "Settings saved successfully" the new addressbooks do not show up (they are not in the DB either)

The ownlcloud instance is addressed by:
https://ssl-proxy.com/my-sub.domain.de/remote.php/carddav/addressbooks/myname/contacts

Before (and working) it was
http://www.domain.de/owncloud/remote.php/carddav/addressbooks/myname/contacts

Error in composer.json

The comma in composer.json, line 19 is wrong, preventing to use roundcube's composer to install the plugin.

Parse error on line 19:
...per"        },    ],    "repositories
---------------------^
Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[' - It appears you have an extra trailing comma

display name of company contacts ignored and overruled by organisation name

The title says it all, but as an example a vcard to demonstrate:

BEGIN:VCARD
VERSION:3.0
UID:73c22b18-226a-11e4-85f9-00247e6a9a6c
ORG:IAK;Zorgverzekeringen
FN:IAK Zorgverzekeringen
TEL;TYPE=work:+31402611888
X-ABSHOWAS:COMPANY
END:VCARD

I'd expect to see the FN (display-name) being used as display name ("IAK Zorgverzekeringen"), this however gets overruled by the first component of the organisation name ("IAK"). This would probably be correct behaviour if no display name is present, it isn't however when one is present.

Logon based "ADDRESSBOOK PRESETS" possible ?

Hi,
i want define 2 adressbook presets, one is read-only mode, the other is for writing the adressbook.
now i'm searching a solution, where my "normal" users will only get the "read-only" addressbook preset and i "as admin" will get both addressbook presets.

because the config.inc.php is a "PHP" file, i think there could by a "if .... then" loop possible :-)
also if "user = [email protected]" then preset 1 +2, else preset 1"
If that could be possible, could anyone give my a little sample code, because i can not PHP

Thank you

Problems loading existing contacts from OwnCloud

Environment:

  • Debian 7.5
  • PHP 5.4.4-14+deb7u14
  • php5-fpm 5.4.4-14+deb7u14
  • PostgreSQL 9.1.13-0wheezy1
  • RoundCube 0.7.2-9+deb7u1
  • OwnCloud 7.0.2-1

Problem description:
After configuring the remote addressbook the first sync didn't pull in all of the existing contacts, but instead one at a time at each sync. The following messages appear in Roundcubes error log:

[08-Sep-2014 15:23:48 UTC] MDB2 Error: unknown error (-1): _doQuery: [Error message: Could not execute statement]
[Last executed query: SELECT currval('carddav_contacts')]
[Native message: ERROR:  "carddav_contacts" is not a sequence]

Expected behaviour:
Syncing all contacts in one go.

Job title should map to vcard 'ROLE' not 'TITLE'

When I add Job title in Roundcube it saves as "TITLE", but iphone and Andoid do not show it.

BEGIN:VCARD
VERSION:3.0
PRODID:Z-Push
FN:Bob Simpson
N:Simpson;Bob;;;
UID:C7015181-7526-4BF8-AB0E-5F016EA81232
REV:2015-02-03T00:28:50-05:00
X-ABSHOWAS:INDIVIDUAL
TITLE:CFO
EMAIL;TYPE=home:[email protected]
EMAIL;TYPE=work:[email protected]
TEL;TYPE=home:555
END:VCARD

Then I added a Job Title "Cook" on the iphone, and it saved it as "ROLE":

BEGIN:VCARD
VERSION:3.0
PRODID:Z-Push
FN:Bob Simpson
N:Simpson;Bob;;;
EMAIL;PREF=1:[email protected]
EMAIL;PREF=2:[email protected]
TEL;TYPE=HOME,VOICE:555
ROLE:Cook
UID:C7015181-7526-4BF8-AB0E-5F016EA81232
END:VCARD

Sync adressbooks after deleting or editing a contact

  1. Search for an existing contact in roundcube.
  2. Delete the contact in roundcube.
  3. Search again for the contact in roundcube.
  4. The deleted contact will be displayed although it was actually deleted. The contact remains in the database after deleting it via roundcube (and actually off the carddav server, but not the database)

I think the rcmcarddav plugin should initiate automatically a sync the carddav adressbook with the database after deleting or edititing a contact.

Currently I set the sync intervall to 2 hours, but I don't want to wait 2 hours until the contact gets deleted from the database.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.