ImagingTools Core SDK
IRoleManager.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 <istd/IPolymorphic.h>
7
8// ImtCore includes
9#include <imtauth/IRole.h>
10
11
12namespace imtauth
13{
14
15
16class IRoleManager: virtual public istd::IPolymorphic
17{
18public:
19 virtual QByteArrayList GetRoleIds() const = 0;
20 virtual IRoleUniquePtr GetRole(const QByteArray& roleId) const = 0;
21 virtual QByteArray CreateRole(
22 const QByteArray& productId,
23 const QString& roleName,
24 const QString& roleDescription = QString(),
25 const QByteArrayList& permissions = QByteArrayList()) = 0;
26 virtual bool RemoveRole(const QByteArray& roleId) = 0;
27 virtual QByteArrayList GetRolePermissions(const QByteArray& roleId) const = 0;
28 virtual bool AddPermissionsToRole(const QByteArray& roleId, const QByteArrayList& permissions) = 0;
29 virtual bool RemovePermissionsFromRole(const QByteArray& roleId, const QByteArrayList& permissions) = 0;
30};
31
32
33} // namespace imtauth
34
35