File indexing completed on 2024-05-12 05:17:12

0001 /*
0002     SPDX-FileCopyrightText: 2009 Andras Mantia <amantia@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "kimap_export.h"
0010 
0011 #include "acljobbase.h"
0012 
0013 namespace KIMAP
0014 {
0015 class Session;
0016 struct Response;
0017 class DeleteAclJobPrivate;
0018 
0019 /**
0020  * Removes an identifier from the ACL of a mailbox.
0021  *
0022  * This job can only be run when the session is in the
0023  * authenticated (or selected) state.
0024  *
0025  * The user must have the Acl::Admin permission
0026  * on the mailbox for this job to succeed (see
0027  * MyRightsJob).
0028  *
0029  * This job requires that the server supports the ACL
0030  * capability, defined in
0031  * <a href="https://tools.ietf.org/html/rfc4314">RFC 4314</a>.
0032  */
0033 class KIMAP_EXPORT DeleteAclJob : public AclJobBase
0034 {
0035     Q_OBJECT
0036     Q_DECLARE_PRIVATE(DeleteAclJob)
0037 
0038     friend class SessionPrivate;
0039 
0040 public:
0041     explicit DeleteAclJob(Session *session);
0042     ~DeleteAclJob() override;
0043 
0044     /**
0045      * Sets the identifier to remove
0046      */
0047     void setIdentifier(const QByteArray &identifier);
0048     /**
0049      * The identifier that will be removed
0050      */
0051     [[nodiscard]] QByteArray identifier();
0052 
0053 protected:
0054     void doStart() override;
0055 };
0056 
0057 }