ImagingTools Core SDK
IRole.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// ACF includes
6#include <iser/IObject.h>
7
8// ImtCore includes
9#include <imtauth/IRoleInfoProvider.h>
10#include <imtlic/IFeatureInfoProvider.h>
11
12
13namespace imtauth
14{
15
16
20class IRole: virtual public iser::IObject
21{
22public:
23 enum MetaInfoTypes
24 {
25 MIT_ROLE_ID = idoc::IDocumentMetaInfo::MIT_USER + 1,
26 MIT_ROLE_NAME,
27 MIT_ROLE_DESCRIPTION,
28 MIT_PRODUCT_ID
29 };
30
31 typedef QByteArrayList FeatureIds;
32
33 virtual const IRoleInfoProvider* GetParentRolesProvider() const = 0;
34
39
43 virtual QByteArray GetRoleId() const = 0;
44
48 virtual void SetRoleId(const QByteArray& id) = 0;
49
53 virtual QString GetRoleName() const = 0;
54
58 virtual void SetRoleName(const QString& name) = 0;
59
63 virtual QString GetRoleDescription() const = 0;
64
68 virtual void SetRoleDescription(const QString& description) = 0;
69
73 virtual FeatureIds GetPermissions() const = 0;
74
78 virtual FeatureIds GetLocalPermissions() const = 0;
79
83 virtual void SetLocalPermissions(const FeatureIds& permissions) = 0;
84
88 virtual FeatureIds GetProhibitions() const = 0;
89
93 virtual void SetProhibitions(const FeatureIds& prohibitions) = 0;
94
98 virtual QByteArray GetProductId() const = 0;
99
103 virtual void SetProductId(const QByteArray& productId) = 0;
104
108 virtual QByteArrayList GetIncludedRoles() const = 0;
109
113 virtual bool IncludeRole(const QByteArray& roleId) = 0;
114
118 virtual void ExcludeRole(const QByteArray& roleId) = 0;
119
123 virtual bool IsDefault() const = 0;
124
128 virtual void SetDefault(bool isDefault) = 0;
129
133 virtual bool IsGuest() const = 0;
134
138 virtual void SetGuest(bool isGuest) = 0;
139};
140
141
142typedef istd::TUniqueInterfacePtr<IRole> IRoleUniquePtr;
143typedef istd::TSharedInterfacePtr<IRole> IRoleSharedPtr;
144
145
146} // namespace imtauth
147
148
virtual FeatureIds GetPermissions() const =0
virtual void SetProhibitions(const FeatureIds &prohibitions)=0
virtual void SetProductId(const QByteArray &productId)=0
virtual QByteArray GetRoleId() const =0
virtual FeatureIds GetLocalPermissions() const =0
virtual void ExcludeRole(const QByteArray &roleId)=0
virtual bool IsGuest() const =0
virtual void SetRoleDescription(const QString &description)=0
virtual QByteArrayList GetIncludedRoles() const =0
virtual bool IncludeRole(const QByteArray &roleId)=0
virtual void SetRoleName(const QString &name)=0
virtual void SetRoleId(const QByteArray &id)=0
virtual void SetLocalPermissions(const FeatureIds &permissions)=0
virtual bool IsDefault() const =0
virtual QString GetRoleName() const =0
virtual FeatureIds GetProhibitions() const =0
virtual void SetGuest(bool isGuest)=0
virtual QString GetRoleDescription() const =0
virtual const imtlic::IFeatureInfoProvider * GetPermissionProvider() const =0
virtual void SetDefault(bool isDefault)=0
virtual QByteArray GetProductId() const =0