ImagingTools Core SDK
CLdapAuthorizationControllerComp.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 <iprm/IEnableableParam.h>
7
8// ImtCore includes
9#include <imtauthgql/CAuthorizationControllerComp.h>
10
11
12namespace imtauthgql
13{
14
15
16class CLdapAuthorizationControllerComp: public CAuthorizationControllerComp
17{
18public:
19 typedef CAuthorizationControllerComp BaseClass;
20
21 I_BEGIN_COMPONENT(CLdapAuthorizationControllerComp);
22 I_ASSIGN(m_systemIdAttrPtr, "SystemId", "System-ID", false, "Ldap");
23 I_ASSIGN(m_roleCollectionCompPtr, "RoleCollection", "Role collection", false, "RoleCollection");
24 I_ASSIGN(m_enableableParamCompPtr, "LdapEnableableParam", "Ldap enableable param", false, "LdapEnableableParam");
25 I_END_COMPONENT;
26
27protected:
28 enum RoleType
29 {
30 RT_DEFAULT,
31 RT_GUEST
32 };
33
34 virtual QByteArray CheckExistsRole(const QByteArray& productId, RoleType roleType) const;
35 virtual QByteArray InsertNewIdentifiableRoleInfo(
36 const QByteArray& roleId,
37 const QString& roleName,
38 const QString& description,
39 const QByteArray& productId,
40 bool isDefault,
41 bool isGuest) const;
42 virtual istd::TUniqueInterfacePtr<imtauth::IUserInfo> CreateUserInfoFromLdapUser(const QByteArray& ldapUserId) const;
43
44 // reimplemented (CAuthorizationControllerComp)
45 virtual sdl::imtauth::Authorization::CAuthorizationPayload OnAuthorization(
46 const sdl::imtauth::Authorization::CAuthorizationGqlRequest& authorizationRequest,
47 const imtgql::CGqlRequest& gqlRequest,
48 QString& errorMessage) const override;
49
50private:
51 I_REF(iprm::IEnableableParam, m_enableableParamCompPtr);
52 I_REF(imtbase::IObjectCollection, m_roleCollectionCompPtr);
53 I_ATTR(QByteArray, m_systemIdAttrPtr);
54};
55
56
57} // namespace imtauthgql
58
59
Authentication GraphQL API Layer Module.