ImagingTools Core SDK
CUserDatabaseDelegateComp.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 <imtdb/CSqlDatabaseDocumentDelegateComp.h>
7
8
9namespace imtauthdb
10{
11
12
13class CUserDatabaseDelegateComp: public imtdb::CSqlDatabaseDocumentDelegateComp
14{
15public:
16 typedef imtdb::CSqlDatabaseDocumentDelegateComp BaseClass;
17
18 I_BEGIN_COMPONENT(CUserDatabaseDelegateComp)
19 I_ASSIGN(m_userGroupDatabaseDelegateCompPtr, "UserGroupDatabaseSqlDelegate", "User group database sql delegate", false, "UserGroupDatabaseSqlDelegate");
20 I_ASSIGN(m_userGroupCollectionCompPtr, "UserGroupCollection", "User group collection", false, "UserGroupCollection");
21 I_END_COMPONENT
22
23 // reimplemented (imtdb::ISqlDatabaseObjectDelegate)
24 virtual NewObjectQuery CreateNewObjectQuery(
25 const QByteArray& typeId,
26 const QByteArray& proposedObjectId,
27 const QString& objectName,
28 const QString& objectDescription,
29 const istd::IChangeable* valuePtr,
30 const imtbase::IOperationContext* operationContextPtr) const override;
31 virtual QByteArray CreateUpdateObjectQuery(
32 const imtbase::IObjectCollection& collection,
33 const QByteArray& objectId,
34 const istd::IChangeable& object,
35 const imtbase::IOperationContext* operationContextPtr,
36 bool useExternDelegate = true) const override;
37 virtual QByteArray CreateDeleteObjectsQuery(
38 const imtbase::IObjectCollection& collection,
39 const imtbase::ICollectionInfo::Ids& objectIds,
40 const imtbase::IOperationContext* operationContextPtr) const override;
41 virtual bool CreateObjectFilterQuery(const iprm::IParamsSet& filterParams, QString& filterQuery) const override;
42 virtual bool CreateSortQuery(const imtbase::IComplexCollectionFilter& collectionFilter, QString& sortQuery) const override;
43 virtual QByteArray CreateJoinTablesQuery() const override;
44 virtual QByteArray GetCustomColumnsQuery() const override;
45
46private:
47 I_REF(imtdb::ISqlDatabaseObjectDelegate, m_userGroupDatabaseDelegateCompPtr);
48 I_REF(imtbase::IObjectCollection, m_userGroupCollectionCompPtr);
49};
50
51
52} // namespace imtauthdb
53
54
Authentication Database Persistence Layer Module.