ImagingTools Core SDK
CUserControllerComp.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 <imtbase/IObjectCollection.h>
7#include <imtauth/ICredentialController.h>
8#include <imtauth/IUserVerificationController.h>
9#include <imtauthgql/CUserRepresentationController.h>
10#include <imtcrypt/IHashGenerator.h>
11#include <imtauth/IUserVerificationCodeSender.h>
12#include <imtdb/IDatabaseServerConnectionChecker.h>
13#include <GeneratedFiles/imtauthsdl/SDL/1.0/CPP/Users.h>
14
15
16namespace imtauthgql
17{
18
19
20class CUserControllerComp: public sdl::imtauth::Users::CGraphQlHandlerCompBase
21{
22public:
23 typedef sdl::imtauth::Users::CGraphQlHandlerCompBase BaseClass;
24
25 I_BEGIN_COMPONENT(CUserControllerComp);
26 I_ASSIGN(m_userVerificationControllerCompPtr, "UserVerificationController", "User verification controller", true, "UserVerificationController");
27 I_ASSIGN(m_userCollectionCompPtr, "UserCollection", "User collection", true, "UserCollection");
28 I_ASSIGN(m_roleCollectionCompPtr, "RoleCollection", "Role collection", false, "RoleCollection");
29 I_ASSIGN(m_hashCalculatorCompPtr, "HashCalculator", "Hash calculator", true, "HashCalculator");
30 I_ASSIGN(m_credentialControllerCompPtr, "CredentialController", "Credential controller", true, "CredentialController");
31 I_ASSIGN(m_userFactoryCompPtr, "UserFactory", "User factory", true, "UserFactory");
32 I_ASSIGN(m_userOperationContextControllerCompPtr, "UserOperationContextController", "User operation context controller", false, "UserOperationContextController");
33 I_ASSIGN(m_userVerificationCodeSenderCompPtr, "UserVerificationCodeSender", "User verification code sender", false, "UserVerificationCodeSender");
34 I_ASSIGN(m_databaseConnectionCheckerCompPtr, "DatabaseConnectionChecker", "Database connection checker", false, "DatabaseConnectionChecker");
35 I_END_COMPONENT;
36
37protected:
38 // reimplemented (sdl::imtauth::Users::CGraphQlHandlerCompBase)
39 virtual sdl::imtauth::Users::CChangePasswordPayload OnChangePassword(
40 const sdl::imtauth::Users::CChangePasswordGqlRequest& changePasswordRequest,
41 const imtgql::CGqlRequest& gqlRequest,
42 QString& errorMessage) const override;
43 virtual sdl::imtauth::Users::CRegisterUserPayload OnRegisterUser(
44 const sdl::imtauth::Users::CRegisterUserGqlRequest& registerUserRequest,
45 const ::imtgql::CGqlRequest& gqlRequest,
46 QString& errorMessage) const override;
47 virtual sdl::imtauth::Users::CCheckEmailPayload OnCheckEmail(
48 const sdl::imtauth::Users::CCheckEmailGqlRequest& checkEmailRequest,
49 const ::imtgql::CGqlRequest& gqlRequest,
50 QString& errorMessage) const override;
51 virtual sdl::imtauth::Users::CSendEmailCodePayload OnSendEmailCode(
52 const sdl::imtauth::Users::CSendEmailCodeGqlRequest& sendEmailCodeRequest,
53 const ::imtgql::CGqlRequest& gqlRequest,
54 QString& errorMessage) const override;
55 virtual sdl::imtauth::Users::CCheckEmailCodePayload OnCheckEmailCode(
56 const sdl::imtauth::Users::CCheckEmailCodeGqlRequest& checkEmailCodeRequest,
57 const ::imtgql::CGqlRequest& gqlRequest,
58 QString& errorMessage) const override;
59 virtual sdl::imtauth::Users::CCheckSuperuserPayload OnCheckSuperuserExists(
60 const sdl::imtauth::Users::CCheckSuperuserExistsGqlRequest& checkSuperuserExistsRequest,
61 const ::imtgql::CGqlRequest& gqlRequest,
62 QString& errorMessage) const override;
63 virtual sdl::imtauth::Users::CCreateSuperuserPayload OnCreateSuperuser(
64 const sdl::imtauth::Users::CCreateSuperuserGqlRequest& createSuperuserRequest,
65 const ::imtgql::CGqlRequest& gqlRequest,
66 QString& errorMessage) const override;
67 virtual sdl::imtauth::Users::CUserObjectId OnGetUserObjectId(
68 const sdl::imtauth::Users::CGetUserObjectIdGqlRequest& getUserObjectIdRequest,
69 const ::imtgql::CGqlRequest& gqlRequest,
70 QString& errorMessage) const override;
71
72 // reimplemented (imtservergql::CPermissibleGqlRequestHandlerComp)
73 virtual bool CheckPermissions(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
74
75private:
76 bool SendUserCode(const QByteArray& userId, const imtauth::IUserInfo& userInfo) const;
77 imtauth::IUserInfoSharedPtr GetUserInfoByLogin(const QByteArray& login) const;
78 QByteArray GetUserIdByLogin(const QByteArray& login) const;
79 QByteArray GetUserIdByEmail(const QString& email) const;
80
81private:
82 I_REF(imtauth::IUserVerificationController, m_userVerificationControllerCompPtr);
83 I_REF(imtbase::IObjectCollection, m_userCollectionCompPtr);
84 I_REF(imtbase::IObjectCollection, m_roleCollectionCompPtr);
85 I_REF(imtcrypt::IHashGenerator, m_hashCalculatorCompPtr);
86 I_REF(imtauth::ICredentialController, m_credentialControllerCompPtr);
87 I_FACT(imtauth::IUserInfo, m_userFactoryCompPtr);
88 I_REF(imtbase::IOperationContextController, m_userOperationContextControllerCompPtr);
89 I_REF(imtauth::IUserVerificationCodeSender, m_userVerificationCodeSenderCompPtr);
90 I_REF(imtdb::IDatabaseServerConnectionChecker, m_databaseConnectionCheckerCompPtr);
91
92private:
93 imtauthgql::CUserRepresentationController m_userRepresentationController;
94};
95
96
97} // namespace imtauthgql
98
99
Authentication GraphQL API Layer Module.