ImagingTools Core SDK
CPermissibleGqlRequestHandlerComp.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 <imtserverapp/ICommandPermissionsProvider.h>
7#include <imtauth/IPermissionChecker.h>
8#include <imtservergql/CGqlRequestHandlerCompBase.h>
9
10
11namespace imtservergql
12{
13
14
15class CPermissibleGqlRequestHandlerComp: public CGqlRequestHandlerCompBase
16{
17public:
18 typedef CGqlRequestHandlerCompBase BaseClass;
19
20 I_BEGIN_COMPONENT(CPermissibleGqlRequestHandlerComp);
21 I_ASSIGN(m_commandPermissionsCompPtr, "CommandPermissions", "Command Permissions", false, "Command Permissions");
22 I_ASSIGN(m_checkPermissionCompPtr, "PermissionChecker", "Checker of the permissions", false, "PermissionChecker");
23 I_END_COMPONENT;
24
25 // reimplemented (CGqlRequestHandlerCompBase)
26 virtual QJsonObject CreateResponse(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
27
28protected:
29 virtual bool CheckPermissions(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const;
30
31 // reimplemented (CGqlRequestHandlerCompBase)
32 virtual QJsonObject CreateInternalResponse(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
33
34protected:
35 I_REF(imtserverapp::ICommandPermissionsProvider, m_commandPermissionsCompPtr);
36 I_REF(imtauth::IPermissionChecker, m_checkPermissionCompPtr);
37};
38
39
40} // namespace imtservergql
41
42