Properly fix initial contacts setup
Partially reverts 263cdf544a because it wasn't necessary.
This commit is contained in:
@@ -33,7 +33,7 @@ Now, download/copy the following configuration files (and tweak their contents a
|
||||
- [`docker-compose.yml`](/docker-compose.yml)
|
||||
- [`.env.sample`](/.env.sample) and save it as `.env`
|
||||
- [`bewcloud.config.sample.ts`](/bewcloud.config.sample.ts) and save it as `bewcloud.config.ts`
|
||||
- [`radicale-config/config`](/radicale-config/config) and save it as `radicale-config/config` (if you're using CalDav/CardDav)
|
||||
- [`radicale-config/config`](/radicale-config/config) and save it as `radicale-config/config` (if you're using CalDav/CardDav/Contacts)
|
||||
|
||||
Finally, run these commands:
|
||||
|
||||
|
||||
@@ -34,11 +34,11 @@ const config: PartialDeep<Config> = {
|
||||
// },
|
||||
// contacts: {
|
||||
// enableCardDavServer: true,
|
||||
// cardDavUrl: 'http://127.0.0.1:5232',
|
||||
// cardDavUrl: 'http://radicale:5232',
|
||||
// },
|
||||
// calendar: {
|
||||
// enableCalDavServer: true,
|
||||
// calDavUrl: 'http://127.0.0.1:5232',
|
||||
// calDavUrl: 'http://radicale:5232',
|
||||
// },
|
||||
};
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
services:
|
||||
website:
|
||||
image: ghcr.io/bewcloud/bewcloud:v2.4.4
|
||||
image: ghcr.io/bewcloud/bewcloud:v2.4.5
|
||||
restart: always
|
||||
ports:
|
||||
- 127.0.0.1:8000:8000
|
||||
@@ -32,8 +32,8 @@ services:
|
||||
# NOTE: If you don't want to use the CardDav/CalDav servers, you can comment/remove this service.
|
||||
radicale:
|
||||
image: tomsquest/docker-radicale:3.5.4.0
|
||||
ports:
|
||||
- 127.0.0.1:5232:5232
|
||||
# ports:
|
||||
# - 127.0.0.1:5232:5232
|
||||
init: true
|
||||
read_only: true
|
||||
security_opt:
|
||||
|
||||
@@ -38,11 +38,11 @@ export class AppConfig {
|
||||
},
|
||||
contacts: {
|
||||
enableCardDavServer: true,
|
||||
cardDavUrl: 'http://127.0.0.1:5232',
|
||||
cardDavUrl: 'http://radicale:5232',
|
||||
},
|
||||
calendar: {
|
||||
enableCalDavServer: true,
|
||||
calDavUrl: 'http://127.0.0.1:5232',
|
||||
calDavUrl: 'http://radicale:5232',
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
@@ -135,32 +135,7 @@ export class ContactModel {
|
||||
): Promise<AddressBook[]> {
|
||||
const client = await getClient(userId);
|
||||
|
||||
let davAddressBooks: DAVObject[] = [];
|
||||
|
||||
try {
|
||||
davAddressBooks = await client.fetchAddressBooks();
|
||||
} catch (_error) {
|
||||
// It's possible the user doesn't exist in Radicale yet, so try creating it by doing a simple PROPFIND request for the main addressbook's address (Radicale will automatically create the user)
|
||||
const userUrl = `${contactsConfig.cardDavUrl}/${userId}/`;
|
||||
|
||||
const xmlBody = `<?xml version="1.0" encoding="utf-8"?>
|
||||
<propfind xmlns="DAV:" xmlns:card="urn:ietf:params:xml:ns:carddav">
|
||||
<prop>
|
||||
<card:addressbook-home-set/>
|
||||
</prop>
|
||||
</propfind>`;
|
||||
|
||||
await fetch(userUrl, {
|
||||
method: 'PROPFIND',
|
||||
headers: {
|
||||
'Content-Type': 'application/xml; charset=utf-8',
|
||||
'X-Remote-User': userId,
|
||||
},
|
||||
body: xmlBody,
|
||||
});
|
||||
|
||||
davAddressBooks = await client.fetchAddressBooks();
|
||||
}
|
||||
const davAddressBooks: DAVObject[] = await client.fetchAddressBooks();
|
||||
|
||||
const addressBooks: AddressBook[] = davAddressBooks.map((davAddressBook) => {
|
||||
const uid = davAddressBook.url.split('/').filter(Boolean).pop()!;
|
||||
|
||||
Reference in New Issue
Block a user