ImagingTools Core SDK
CUserBaseInfo.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// ImtCore includes
6#include <imtauth/CRole.h>
7#include <imtauth/IUserBaseInfo.h>
8
9
10namespace imtauth
11{
12
13
14class CUserBaseInfo: virtual public IUserBaseInfo
15{
16
17public:
18 CUserBaseInfo();
19
20 // reimplemented (iser::IUserBaseInfo)
21 virtual const imtlic::IFeatureInfoProvider* GetPermissionProvider() const override;
22 virtual const imtauth::IRoleInfoProvider* GetRoleProvider() const override;
23 virtual QByteArray GetId() const override;
24 virtual void SetId(const QByteArray& id) override;
25 virtual QString GetName() const override;
26 virtual void SetName(const QString& name) override;
27 virtual QString GetDescription() const override;
28 virtual void SetDescription(const QString& description) override;
29 virtual FeatureIds GetPermissions(const QByteArray& productId = QByteArray()) const override;
30 virtual FeatureIds GetLocalPermissions(const QByteArray& productId) const override;
31 virtual void SetLocalPermissions(const QByteArray& productId, const FeatureIds &permissions) override;
32 virtual FeatureIds GetProhibitions() const override;
33 virtual void SetProhibitions(const FeatureIds &prohibitions) override;
34 virtual QByteArrayList GetProducts() const override;
35 virtual bool RemoveProduct(const QByteArray& productId) override;
36 virtual RoleIds GetRoles(const QByteArray& productId) const override;
37 virtual void SetRoles(const QByteArray& productId, const RoleIds &roles) override;
38 virtual void AddRole(const QByteArray& productId, const QByteArray& roleId) override;
39 virtual bool RemoveRole(const QByteArray& productId, const QByteArray& roleId) override;
40 virtual const imtauth::IUserGroupInfoProvider* GetUserGroupProvider() const override;
41
42 // reimplemented (iser::ISerializable)
43 virtual bool Serialize(iser::IArchive &archive) override;
44
45 // reimplemented (iser::IChangeable)
46 virtual int GetSupportedOperations() const override;
47 virtual bool CopyFrom(const IChangeable &object, CompatibilityMode mode = CM_WITHOUT_REFS) override;
48 virtual bool IsEqual(const IChangeable& object) const override;
49 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS) const override;
50 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS) override;
51
52protected:
53 const imtlic::IFeatureInfoProvider* m_permissionProviderPtr;
54 const imtauth::IRoleInfoProvider* m_roleProviderPtr;
55 const imtauth::IUserGroupInfoProvider* m_userGroupInfoProviderPtr;
56
57protected:
58 IUserBaseInfo::FeatureIds m_restrictions;
59
60 QMap<QByteArray, QByteArrayList> m_permissionsMap;
61 QMap<QByteArray, QByteArrayList> m_rolesMap;
62 QString m_name;
63 QByteArray m_id;
64 QString m_description;
65};
66
67
68} // namespace imtauth
69
70
71