ImagingTools Core SDK
CUserGroupInfoComp.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/IUserInfoProvider.h>
10#include <imtauth/IUserGroupInfoProvider.h>
11#include <imtauth/CUserGroupInfo.h>
12#include <imtauth/IRoleInfoProvider.h>
13
14
15namespace imtauth
16{
17
18
19class CUserGroupInfoComp:
20 public icomp::CComponentBase,
21 public CIdentifiableUserGroupInfo
22{
23public:
24 typedef icomp::CComponentBase BaseClass;
25
26 I_BEGIN_COMPONENT(CUserGroupInfoComp);
27 I_REGISTER_INTERFACE(IUserGroupInfo);
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_userProviderCompPtr, "UserProvider", "User provider", false, "UserProvider");
32 I_END_COMPONENT;
33
34protected:
35 // reimplemented (icomp::CComponentBase)
36 virtual void OnComponentCreated() override;
37
38private:
39 I_REF(imtauth::IRoleInfoProvider, m_roleProviderCompPtr);
40 I_REF(imtauth::IUserGroupInfoProvider, m_userGroupProviderCompPtr);
41 I_REF(imtauth::IUserInfoProvider, m_userProviderCompPtr);
42};
43
44
45} // namespace imtauth
46
47