Libksieve

checkkolabkep14supportjob.h
1/*
2 * SPDX-FileCopyrightText: 2015 Sandro Knauß <knauss@kolabsys.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#pragma once
8
9#include <QObject>
10#include <QStringList>
11
12#include "ksievecore_export.h"
13#include <QUrl>
14#include <memory>
15
16namespace KManageSieve
17{
18class SieveJob;
19}
20
21namespace KSieveCore
22{
23class CheckKolabKep14SupportJobPrivate;
24
25/**
26\brief Checks for support of Non-conflicting edits of Sieve scripts by multiple editors (KEP:14)
27
28\par Introduction
29
30This Kolab Enhancement Proposal defines the conventions and application behaviour to enable
31non-conflicting edits of RFC 5228 Sieve scripts on the server by multiple editors.
32
33The result is the ability to have different layers of Sieve management per user, with different
34levels of required authorization, and the ability to provide users with multiple active scripts
35which can be activated and deactivated as required, thus enabling splitting of the user-facing
36Sieve functionality into more conveniently managed files.
37
38Every sieve server can support KEP:14, because it is only a standardisation of filenames and a
39way to support and enable multiple scripts.
40
41For more information on Kolab KEP:14 see:
42 * http://wiki.kolab.org/KEP:14
43 * http://git.kolabsys.com/keps/tree/KEP-0014.txt
44
45*/
46
47class KSIEVECORE_EXPORT CheckKolabKep14SupportJob : public QObject
48{
49 Q_OBJECT
50public:
51 explicit CheckKolabKep14SupportJob(QObject *parent = nullptr);
53
54 void start();
55
56 void setServerUrl(const QUrl &url);
57 void setServerName(const QString &name);
58 [[nodiscard]] QString serverName() const;
59
60 [[nodiscard]] QStringList availableScripts() const;
61 [[nodiscard]] bool hasKep14Support() const;
62 [[nodiscard]] QUrl serverUrl() const;
63
64Q_SIGNALS:
65 void result(KSieveCore::CheckKolabKep14SupportJob *, bool);
66
67private:
68 std::unique_ptr<CheckKolabKep14SupportJobPrivate> const d;
69
70private:
71 Q_DISABLE_COPY(CheckKolabKep14SupportJob)
72 KSIEVECORE_NO_EXPORT void
73 slotCheckKep14Support(KManageSieve::SieveJob *job, bool success, const QStringList &availableScripts, const QString &activeScript);
74};
75}
A job to manage sieve scripts.
Definition sievejob.h:31
Checks for support of Non-conflicting edits of Sieve scripts by multiple editors (KEP:14)
Q_SCRIPTABLE Q_NOREPLY void start()
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:17:19 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.