File indexing completed on 2024-12-22 04:57:00

0001 /*
0002     SPDX-FileCopyrightText: 2015-2017 Krzysztof Nowicki <krissn@op.pl>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QMetaType>
0010 #include <QSharedDataPointer>
0011 
0012 #include "ewstypes.h"
0013 
0014 class EwsEffectiveRightsPrivate;
0015 class QXmlStreamReader;
0016 
0017 class EwsEffectiveRights
0018 {
0019 public:
0020     typedef QList<EwsEffectiveRights> List;
0021 
0022     EwsEffectiveRights();
0023     explicit EwsEffectiveRights(QXmlStreamReader &reader);
0024     EwsEffectiveRights(const EwsEffectiveRights &other);
0025     EwsEffectiveRights(EwsEffectiveRights &&other);
0026     virtual ~EwsEffectiveRights();
0027 
0028     EwsEffectiveRights &operator=(const EwsEffectiveRights &other);
0029     EwsEffectiveRights &operator=(EwsEffectiveRights &&other);
0030 
0031     bool isValid() const;
0032     bool canCreateAssociated() const;
0033     bool canCreateContents() const;
0034     bool canCreateHierarchy() const;
0035     bool canDelete() const;
0036     bool canModify() const;
0037     bool canRead() const;
0038     bool canViewPrivateItems() const;
0039 
0040 protected:
0041     QSharedDataPointer<EwsEffectiveRightsPrivate> d;
0042 };
0043 
0044 Q_DECLARE_METATYPE(EwsEffectiveRights)