File indexing completed on 2025-02-02 05:08:37
0001 /* 0002 SPDX-FileCopyrightText: 2014 Sandro Knauß <knauss@kolabsys.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "setupautoconfigkolabfreebusy.h" 0008 #include "ispdb/autoconfigkolabfreebusy.h" 0009 0010 #include "configfile.h" 0011 0012 #include <QFileInfo> 0013 0014 #include <KLocalizedString> 0015 0016 SetupAutoconfigKolabFreebusy::SetupAutoconfigKolabFreebusy(QObject *parent) 0017 : SetupObject(parent) 0018 , mIspdb(new AutoconfigKolabFreebusy(this)) 0019 { 0020 connect(mIspdb, &AutoconfigKolabFreebusy::finished, this, &SetupAutoconfigKolabFreebusy::onIspdbFinished); 0021 } 0022 0023 SetupAutoconfigKolabFreebusy::~SetupAutoconfigKolabFreebusy() 0024 { 0025 delete mIspdb; 0026 } 0027 0028 int SetupAutoconfigKolabFreebusy::countFreebusyServers() const 0029 { 0030 return mIspdb->freebusyServers().count(); 0031 } 0032 0033 void SetupAutoconfigKolabFreebusy::fillFreebusyServer(int i, QObject *o) const 0034 { 0035 const freebusy isp = mIspdb->freebusyServers().values().at(i); 0036 auto *korganizer = qobject_cast<ConfigFile *>(o); 0037 QFileInfo path(isp.path); 0038 QString url(QStringLiteral("https://")); 0039 0040 if (isp.socketType == Ispdb::None) { 0041 url = QStringLiteral("http://"); 0042 } 0043 0044 url += isp.hostname; 0045 0046 if (isp.port != 80) { 0047 url += QLatin1Char(':'); 0048 url += QString::number(isp.port); 0049 } 0050 0051 if (!isp.path.startsWith(QLatin1Char('/'))) { 0052 url += QLatin1Char('/'); 0053 } 0054 0055 url += path.path(); 0056 0057 bool fullDomainRetrieval = (path.baseName() == QLatin1StringView("$EMAIL$")); 0058 0059 const QString group(QStringLiteral("FreeBusy Retrieve")); 0060 0061 korganizer->setConfig(group, QStringLiteral("FreeBusyFullDomainRetrieval"), fullDomainRetrieval ? QStringLiteral("true") : QStringLiteral("false")); 0062 korganizer->setConfig(group, QStringLiteral("FreeBusyRetrieveAuto"), QStringLiteral("true")); 0063 korganizer->setConfig(group, QStringLiteral("FreeBusyRetrieveUrl"), url); 0064 korganizer->setConfig(group, QStringLiteral("FreeBusyRetrieverUser"), isp.username); 0065 korganizer->setConfig(group, QStringLiteral("FreeBusyRetrieverPassword"), isp.password); 0066 if (!isp.password.isEmpty()) { 0067 korganizer->setConfig(group, QStringLiteral("FreeBusyRetrieveSavePassword"), QStringLiteral("true")); 0068 } 0069 } 0070 0071 void SetupAutoconfigKolabFreebusy::start() 0072 { 0073 mIspdb->start(); 0074 Q_EMIT info(i18n("Searching for autoconfiguration...")); 0075 } 0076 0077 void SetupAutoconfigKolabFreebusy::setEmail(const QString &email) 0078 { 0079 mIspdb->setEmail(email); 0080 } 0081 0082 void SetupAutoconfigKolabFreebusy::setPassword(const QString &password) 0083 { 0084 mIspdb->setPassword(password); 0085 } 0086 0087 void SetupAutoconfigKolabFreebusy::create() 0088 { 0089 } 0090 0091 void SetupAutoconfigKolabFreebusy::destroy() 0092 { 0093 } 0094 0095 void SetupAutoconfigKolabFreebusy::onIspdbFinished(bool status) 0096 { 0097 Q_EMIT ispdbFinished(status); 0098 if (status) { 0099 Q_EMIT info(i18n("Autoconfiguration found.")); 0100 } else { 0101 Q_EMIT info(i18n("Autoconfiguration failed.")); 0102 } 0103 } 0104 0105 #include "moc_setupautoconfigkolabfreebusy.cpp"