Kaydet (Commit) ca5a44a9 authored tarafından Mike Kaganski's avatar Mike Kaganski Kaydeden (comit) Andras Timar

Winreg config layer: Allow to define external backend separately

Defining backend separately allows e.g. creating ADMX templates with
easy-to-use UI, where user defines only LDAP names for the setting, and
doesn't need to type the LO configuration backend name.

Change-Id: I64f23043c94a5a4e0ba7281d0f711a427d694126
Reviewed-on: https://gerrit.libreoffice.org/53413Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMike Kaganski <mike.kaganski@collabora.com>
(cherry picked from commit 8776a895)
Reviewed-on: https://gerrit.libreoffice.org/53436Reviewed-by: 's avatarAndras Timar <andras.timar@collabora.com>
Tested-by: 's avatarAndras Timar <andras.timar@collabora.com>
üst ed002d7b
......@@ -37,7 +37,7 @@ namespace {
// Last element of Key becomes prop, first part is the path and optionally nodes,
// when the node has oor:op attribute.
// Values can be the following: Value (string), Type (string, optional),
// Final (dword, optional), External (dword, optional)
// Final (dword, optional), External (dword, optional), ExternalBackend (string, optional)
//
// For example the following registry setting:
// [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\LibreOffice\org.openoffice.UserProfile\Data\o]
......@@ -82,9 +82,10 @@ namespace {
//
// External (component data) example:
// [HKEY_CURRENT_USER\Software\Policies\LibreOffice\org.openoffice.UserProfile\Data\o]
// "Value"="com.sun.star.configuration.backend.LdapUserProfileBe company"
// "Value"="company"
// "Final"=dword:00000001
// "External"=dword:00000001
// "ExternalBackend"="com.sun.star.configuration.backend.LdapUserProfileBe"
// becomes the following in configuration:
// <item oor:path="/org.openoffice.UserProfile/Data">
// <prop oor:name="o" oor:finalized="true">
......@@ -135,6 +136,7 @@ void dumpWindowsRegistryKey(HKEY hKey, OUString const & aKeyName, TempFile &aFil
bool bExternal = false;
OUString aValue;
OUString aType;
OUString aExternalBackend;
for(DWORD i = 0; i < nValues; ++i)
{
......@@ -157,11 +159,20 @@ void dumpWindowsRegistryKey(HKEY hKey, OUString const & aKeyName, TempFile &aFil
if (*reinterpret_cast<DWORD*>(pValue) == 1)
bExternal = true;
}
else if (!wcscmp(pValueName, L"ExternalBackend"))
aExternalBackend = OUString(pValue);
}
// type and external are mutually exclusive
if (bExternal)
{
// type and external are mutually exclusive
aType.clear();
// Prepend backend, like in
// "com.sun.star.configuration.backend.LdapUserProfileBe company"
if (!aExternalBackend.isEmpty())
aValue = aExternalBackend + " " + aValue;
}
sal_Int32 aLastSeparator = aKeyName.lastIndexOf('\\');
OUString aPathAndNodes = aKeyName.copy(0, aLastSeparator);
OUString aProp = aKeyName.copy(aLastSeparator + 1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment