Libksieve

checkkolabkep14supportjob.h
1 /*
2  * SPDX-FileCopyrightText: 2015 Sandro KnauƟ <[email protected]>
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 "ksieveui_export.h"
13 #include <QUrl>
14 #include <memory>
15 
16 namespace KManageSieve
17 {
18 class SieveJob;
19 }
20 
21 namespace KSieveUi
22 {
23 class 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 
30 This Kolab Enhancement Proposal defines the conventions and application behaviour to enable
31 non-conflicting edits of RFC 5228 Sieve scripts on the server by multiple editors.
32 
33 The result is the ability to have different layers of Sieve management per user, with different
34 levels of required authorization, and the ability to provide users with multiple active scripts
35 which can be activated and deactivated as required, thus enabling splitting of the user-facing
36 Sieve functionality into more conveniently managed files.
37 
38 Every sieve server can support KEP:14, because it is only a standardisation of filenames and a
39 way to support and enable multiple scripts.
40 
41 For 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 
47 class KSIEVEUI_EXPORT CheckKolabKep14SupportJob : public QObject
48 {
49  Q_OBJECT
50 public:
51  explicit CheckKolabKep14SupportJob(QObject *parent = nullptr);
52  ~CheckKolabKep14SupportJob() override;
53 
54  void start();
55 
56  void setServerUrl(const QUrl &url);
57  void setServerName(const QString &name);
58  Q_REQUIRED_RESULT QString serverName() const;
59 
60  Q_REQUIRED_RESULT QStringList availableScripts() const;
61  Q_REQUIRED_RESULT bool hasKep14Support() const;
62  Q_REQUIRED_RESULT QUrl serverUrl() const;
63 
64 Q_SIGNALS:
65  void result(KSieveUi::CheckKolabKep14SupportJob *, bool);
66 
67 private:
68  std::unique_ptr<CheckKolabKep14SupportJobPrivate> const d;
69 
70 private:
71  Q_DISABLE_COPY(CheckKolabKep14SupportJob)
72  void slotCheckKep14Support(KManageSieve::SieveJob *job, bool success, const QStringList &availableScripts, const QString &activeScript);
73 };
74 }
75 
Checks for support of Non-conflicting edits of Sieve scripts by multiple editors (KEP:14) ...
A job to manage sieve scripts.
Definition: sievejob.h:37
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sun Apr 11 2021 23:09:36 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.