ImagingTools Core SDK
CUserInfoComp.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 <icomp/CComponentBase.h>
7
8// ImtCore includes
9#include <imtauth/IRoleInfoProvider.h>
10#include <imtauth/IUserInfoProvider.h>
11#include <imtauth/IUserGroupInfoProvider.h>
12#include <imtauth/CUserInfo.h>
13
14
15namespace imtauth
16{
17
18
19class CUserInfoComp:
20 public icomp::CComponentBase,
21 public CIdentifiableUserInfo
22{
23public:
24 typedef icomp::CComponentBase BaseClass;
25
26 I_BEGIN_COMPONENT(CUserInfoComp);
27 I_REGISTER_INTERFACE(IUserInfo);
28 I_REGISTER_INTERFACE(iser::ISerializable);
29 I_ASSIGN(m_roleProviderCompPtr, "RoleProvider", "Role provider", false, "RoleProvider");
30 I_ASSIGN(m_userGroupProviderCompPtr, "UserGroupProvider", "User group provider", false, "UserGroupProvider");
31 I_ASSIGN(m_adminIdAttrPtr, "AdminId", "Id for admin user", false, "admin");
32 I_END_COMPONENT;
33
34protected:
35 // reimplemented (icomp::CComponentBase)
36 virtual void OnComponentCreated() override;
37
38 // reimplemented (iser::IUserInfo)
39 virtual bool IsAdmin() const override;
40
41private:
42 I_REF(imtauth::IRoleInfoProvider, m_roleProviderCompPtr);
43 I_REF(imtauth::IUserGroupInfoProvider, m_userGroupProviderCompPtr);
44 I_ATTR(QByteArray, m_adminIdAttrPtr);
45};
46
47
48} // namespace imtauth