ImagingTools Core SDK
CUserInfo.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QDateTime>
7
8// ImtCore includes
9#include <imtbase/TIdentifiableWrap.h>
10#include <imtauth/IUserInfo.h>
11#include <imtauth/CUserBaseInfo.h>
12
13
14namespace imtauth
15{
16
17
18class CUserInfo: virtual public IUserInfo, public CUserBaseInfo
19{
20public:
21 typedef CUserBaseInfo BaseClass;
22
23 // reimplemented (iser::IUserInfo)
24 virtual QByteArray GetPasswordHash() const override;
25 virtual void SetPasswordHash(const QByteArray& passwordHash) override;
26 virtual QString GetMail() const override;
27 virtual void SetMail(const QString& mail) override;
28 virtual bool IsAdmin() const override;
29 virtual IUserGroupInfo::GroupIds GetGroups() const override;
30 virtual void AddToGroup(const QByteArray& groupId) override;
31 virtual bool RemoveFromGroup(const QByteArray& groupId) override;
32 virtual RoleIds GetRoles(const QByteArray& productId) const override;
33 virtual FeatureIds GetPermissions(const QByteArray& productId = QByteArray()) const override;
34 virtual SystemInfoList GetSystemInfos() const override;
35 virtual bool AddToSystem(SystemInfo systemInfo) override;
36 virtual bool RemoveFromSystem(const QByteArray& systemId) override;
37
38 // reimplemented (iser::ISerializable)
39 virtual bool Serialize(iser::IArchive &archive) override;
40
41 // reimplemented (iser::IChangeable)
42 virtual bool CopyFrom(const IChangeable& object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
43 virtual bool IsEqual(const IChangeable& object) const override;
44 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
45 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
46
47private:
48 QByteArray m_passwordHash;
49 QString m_mail;
50 IUserGroupInfo::GroupIds m_groupIds;
51 QDateTime m_lastConnection;
52 SystemInfoList m_systemInfos;
53};
54
55
56typedef imtbase::TIdentifiableWrap<CUserInfo> CIdentifiableUserInfo;
57
58
59} // namespace imtauth
60
61