6#include <QtCore/QThread>
9#include <ibase/IApplicationInfo.h>
10#include <icomp/CComponentBase.h>
11#include <iauth/ILogin.h>
12#include <iauth/IRightsProvider.h>
13#include <iprm/IEnableableParam.h>
16#include <imtclientgql/TClientRequestManagerCompWrap.h>
17#include <imtauth/IAccessTokenProvider.h>
18#include <imtauth/IPermissionChecker.h>
19#include <imtauth/CUserInfo.h>
20#include <imtauth/ISuperuserProvider.h>
21#include <imtauth/IUserPermissionsController.h>
22#include <imtauth/ILoginInfoProvider.h>
29class CSimpleLoginWrapComp:
30 public imtclientgql::CClientRequestManagerCompBase,
32 public iauth::IRightsProvider,
33 public imtauth::IAccessTokenProvider,
34 virtual public imtauth::IUserPermissionsController,
35 virtual public imtauth::ILoginInfoProvider
38 typedef imtclientgql::CClientRequestManagerCompBase BaseClass;
40 I_BEGIN_COMPONENT(CSimpleLoginWrapComp);
41 I_REGISTER_INTERFACE(ILogin);
42 I_REGISTER_INTERFACE(IRightsProvider);
43 I_REGISTER_INTERFACE(IAccessTokenProvider);
44 I_REGISTER_INTERFACE(imtauth::IUserPermissionsController);
45 I_REGISTER_INTERFACE(imtauth::ILoginInfoProvider);
46 I_ASSIGN(m_userInfoFactCompPtr,
"UserFactory",
"Factory used for creation of the new user",
true,
"UserFactory");
47 I_ASSIGN(m_checkPermissionCompPtr,
"PermissionChecker",
"Checker of the permissions",
false,
"PermissionChecker");
48 I_ASSIGN(m_superuserProviderCompPtr,
"SuperuserProvider",
"Superuser provider",
false,
"SuperuserProvider");
49 I_ASSIGN(m_applicationInfoCompPtr,
"ApplicationInfo",
"Application Info",
true,
"");
52 CSimpleLoginWrapComp();
55 virtual iauth::CUser* GetLoggedUser()
const override;
56 virtual bool Login(
const QString& userName,
const QString& password)
override;
57 virtual bool Logout()
override;
60 virtual bool LoginWithRefreshToken(
const QString& userName,
const QByteArray& refreshToken);
61 virtual QByteArray GetRefreshToken()
const;
64 virtual bool HasRight(
65 const QByteArray& operationId,
66 bool beQuiet =
false)
const override;
69 virtual QByteArray GetToken(
const QByteArray& userId)
const override;
72 virtual QByteArrayList GetPermissions(
const QByteArray& userId)
const override;
73 virtual void SetPermissions(
const QByteArray& userId,
const QByteArrayList& permissions)
override;
76 virtual QByteArray GetLoggedUserId()
const override;
77 virtual imtauth::IUserInfoUniquePtr GetLoggedUserInfo()
const override;
80 mutable iauth::CUser m_loggedUser;
81 QByteArray m_loggedUserId;
82 QByteArray m_loggedUserName;
83 QByteArray m_loggedUserPassword;
84 QByteArray m_loggedUserToken;
85 QByteArray m_loggedUserRefreshToken;
86 QByteArrayList m_userPermissionIds;
87 imtauth::IUserInfoSharedPtr m_userInfoPtr;
88 imtgql::IGqlContextSharedPtr m_gqlContextSharedPtr;
93 I_REF(imtauth::ISuperuserProvider, m_superuserProviderCompPtr);
94 I_REF(ibase::IApplicationInfo, m_applicationInfoCompPtr);
Authentication GraphQL API Layer Module.