ImagingTools Core SDK
CRemotePermissionCheckerComp.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 <ilog/TLoggerCompWrap.h>
7
8// ImtCore includes
9#include <imtauth/IPermissionChecker.h>
10#include <imtgql/IGqlRequestHandler.h>
11
12
13namespace imtauthgql
14{
15
16
17class CRemotePermissionCheckerComp:
18 public ilog::TLoggerCompWrap<icomp::CComponentBase>,
19 virtual public imtauth::IPermissionChecker
20{
21public:
22 typedef ilog::TLoggerCompWrap<icomp::CComponentBase> BaseClass;
23
24 I_BEGIN_COMPONENT(CRemotePermissionCheckerComp)
25 I_REGISTER_INTERFACE(imtauth::IPermissionChecker);
26 I_ASSIGN(m_gqlRequestHandlerCompPtr, "GqlRequest", "GraphQL request handler", true, "GqlRequest");
27 I_ASSIGN(m_permissionCheckerCompPtr, "PermissionChecker", "Permission checker", true, "PermissionChecker");
28 I_END_COMPONENT;
29
30 // reimplemented (imtauth::IPermissionChecker)
31 virtual bool CheckPermission(const imtauth::IUserInfo::FeatureIds& userPermissions, const QByteArrayList& permissions) override;
32
33protected:
34 I_REF(imtgql::IGqlRequestHandler, m_gqlRequestHandlerCompPtr);
35 I_REF(imtauth::IPermissionChecker, m_permissionCheckerCompPtr);
36};
37
38
39} // namespace imtauthgql
40
41
Authentication GraphQL API Layer Module.