254 lines
5.4 KiB
C++
254 lines
5.4 KiB
C++
|
#ifndef ANALISYS_HPP
|
||
|
#define ANALISYS_HPP
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#include "AnalisysResults.hpp"
|
||
|
#include "dspecup.hpp"
|
||
|
|
||
|
class CSVDSReader;
|
||
|
struct sChangeList;
|
||
|
|
||
|
|
||
|
class Analisys
|
||
|
{
|
||
|
|
||
|
public:
|
||
|
Analisys(
|
||
|
const CSVDSReader& csvReader409_,
|
||
|
const CSVDSReader& csvReaderIntl_,
|
||
|
const String& ldapPrefix_,
|
||
|
const String& rootContainerDn_,
|
||
|
AnalisysResults &res,
|
||
|
const String &reportName_=L"",
|
||
|
void *caleeStruct_=NULL,
|
||
|
progressFunction stepIt_=NULL,
|
||
|
progressFunction totalSteps_=NULL
|
||
|
);
|
||
|
|
||
|
|
||
|
HRESULT run();
|
||
|
|
||
|
private:
|
||
|
|
||
|
|
||
|
const CSVDSReader& csvReader409;
|
||
|
const CSVDSReader& csvReaderIntl;
|
||
|
String ldapPrefix;
|
||
|
String rootContainerDn;
|
||
|
AnalisysResults& results;
|
||
|
String reportName;
|
||
|
void *caleeStruct;
|
||
|
progressFunction stepIt;
|
||
|
progressFunction totalSteps;
|
||
|
|
||
|
|
||
|
|
||
|
// add entry to result.createContainers if container is not present
|
||
|
// also returns flag isPresent
|
||
|
HRESULT
|
||
|
dealWithContainer(
|
||
|
const long locale,
|
||
|
bool &isPresent);
|
||
|
|
||
|
// add entries to results.conflictingXPObjects or
|
||
|
// results.createXPObject as necessary
|
||
|
HRESULT
|
||
|
dealWithXPObjects(const long locale);
|
||
|
|
||
|
// add entries to results.createW2KObjects and
|
||
|
// and results.objectActions as necessary
|
||
|
HRESULT
|
||
|
dealWithW2KObjects(const long locale);
|
||
|
|
||
|
|
||
|
// adds ordAndGuid to the property if Guid is not already there.
|
||
|
HRESULT
|
||
|
addGuid
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const int locale,
|
||
|
const wchar_t *object,
|
||
|
const wchar_t *property,
|
||
|
const wchar_t *ordAndGuid
|
||
|
);
|
||
|
|
||
|
// adds all csv values still not on the property
|
||
|
HRESULT
|
||
|
addAllCsvValues
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const long locale,
|
||
|
const wchar_t *object,
|
||
|
const wchar_t *property
|
||
|
);
|
||
|
|
||
|
// adds value to the property if it is not already there.
|
||
|
HRESULT
|
||
|
addValue
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const int locale,
|
||
|
const wchar_t *object,
|
||
|
const wchar_t *property,
|
||
|
const wchar_t *value
|
||
|
);
|
||
|
|
||
|
|
||
|
HRESULT
|
||
|
getCsvSingleValue
|
||
|
(
|
||
|
const int locale,
|
||
|
const wchar_t *object,
|
||
|
const wchar_t *property,
|
||
|
String &csvValue
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
replaceW2KSingleValue
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const int locale,
|
||
|
const wchar_t *object,
|
||
|
const wchar_t *property,
|
||
|
const wchar_t *value
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
getCsvMultipleValue
|
||
|
(
|
||
|
const int locale,
|
||
|
const wchar_t *object,
|
||
|
const wchar_t *property,
|
||
|
const wchar_t *value,
|
||
|
String &csvValue,
|
||
|
String &XPstart
|
||
|
);
|
||
|
|
||
|
|
||
|
HRESULT
|
||
|
replaceW2KMultipleValue(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const int locale,
|
||
|
const wchar_t *object,
|
||
|
const wchar_t *property,
|
||
|
const wchar_t *value);
|
||
|
|
||
|
|
||
|
// removes ordAndGuid from the property if Guid is there.
|
||
|
HRESULT
|
||
|
removeGuid(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const int locale,
|
||
|
const wchar_t *object,
|
||
|
const wchar_t *property,
|
||
|
const wchar_t *ordAndGuid);
|
||
|
|
||
|
// set previousSuccessfulRun reading from ADSI
|
||
|
HRESULT
|
||
|
setPreviousSuccessfullRun();
|
||
|
|
||
|
HRESULT
|
||
|
checkChanges
|
||
|
(
|
||
|
const long locale,
|
||
|
const sChangeList& changes,
|
||
|
IDirectoryObject *iDirObj
|
||
|
);
|
||
|
|
||
|
|
||
|
HRESULT
|
||
|
getADFirstValue
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const String &property,
|
||
|
String &value
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
isADStartValuePresent
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const String &property,
|
||
|
const String &valueStart,
|
||
|
String &value
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
isADValuePresent
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const String &property,
|
||
|
const String &value
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
getADGuid
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const String &property,
|
||
|
const String &guidValue,
|
||
|
String &guidFound
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
removeExtraneous
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const int locale,
|
||
|
const String &object,
|
||
|
const String &property,
|
||
|
const String &keeper
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
removeExtraneous
|
||
|
(
|
||
|
IDirectoryObject *iDirObj,
|
||
|
const int locale,
|
||
|
const String &object,
|
||
|
const String &property,
|
||
|
const String &keeper,
|
||
|
const String &start1,
|
||
|
const String &start2
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
reportObjects
|
||
|
(
|
||
|
HANDLE file,
|
||
|
const ObjectIdList &list,
|
||
|
const String &header
|
||
|
);
|
||
|
|
||
|
|
||
|
HRESULT
|
||
|
reportContainers
|
||
|
(
|
||
|
HANDLE file,
|
||
|
const LongList &list,
|
||
|
const String &header
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
reportActions
|
||
|
(
|
||
|
HANDLE file,
|
||
|
const ObjectActions &list,
|
||
|
const String &header
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
reportValues
|
||
|
(
|
||
|
HANDLE file,
|
||
|
const SingleValueList &list,
|
||
|
const String &header
|
||
|
);
|
||
|
|
||
|
HRESULT
|
||
|
createReport(const String& reportName);
|
||
|
};
|
||
|
|
||
|
#endif
|