advapi32: Add some more rights constants for ConvertStringSecurityDescriptorToSecurityDescriptor.

This commit is contained in:
Mikołaj Zalewski 2007-09-22 21:26:05 -07:00 committed by Alexandre Julliard
parent 316095c7a3
commit 5b4aa62fd2
3 changed files with 68 additions and 3 deletions

View File

@ -35,6 +35,8 @@
#include "sddl.h"
#include "winsvc.h"
#include "aclapi.h"
#include "objbase.h"
#include "iads.h"
#include "advapi32_misc.h"
#include "wine/debug.h"
@ -246,6 +248,27 @@ static const WCHAR SDDL_READ_CONTROL[] = {'R','C',0};
static const WCHAR SDDL_WRITE_DAC[] = {'W','D',0};
static const WCHAR SDDL_WRITE_OWNER[] = {'W','O',0};
static const WCHAR SDDL_STANDARD_DELETE[] = {'S','D',0};
static const WCHAR SDDL_READ_PROPERTY[] = {'R','P',0};
static const WCHAR SDDL_WRITE_PROPERTY[] = {'W','P',0};
static const WCHAR SDDL_CREATE_CHILD[] = {'C','C',0};
static const WCHAR SDDL_DELETE_CHILD[] = {'D','C',0};
static const WCHAR SDDL_LIST_CHILDREN[] = {'L','C',0};
static const WCHAR SDDL_SELF_WRITE[] = {'S','W',0};
static const WCHAR SDDL_LIST_OBJECT[] = {'L','O',0};
static const WCHAR SDDL_DELETE_TREE[] = {'D','T',0};
static const WCHAR SDDL_CONTROL_ACCESS[] = {'C','R',0};
static const WCHAR SDDL_FILE_ALL[] = {'F','A',0};
static const WCHAR SDDL_FILE_READ[] = {'F','R',0};
static const WCHAR SDDL_FILE_WRITE[] = {'F','W',0};
static const WCHAR SDDL_FILE_EXECUTE[] = {'F','X',0};
static const WCHAR SDDL_KEY_ALL[] = {'K','A',0};
static const WCHAR SDDL_KEY_READ[] = {'K','R',0};
static const WCHAR SDDL_KEY_WRITE[] = {'K','W',0};
static const WCHAR SDDL_KEY_EXECUTE[] = {'K','X',0};
static const WCHAR SDDL_GENERIC_ALL[] = {'G','A',0};
static const WCHAR SDDL_GENERIC_READ[] = {'G','R',0};
static const WCHAR SDDL_GENERIC_WRITE[] = {'G','W',0};
@ -3107,10 +3130,31 @@ static const ACEFLAG AceRights[] =
{ SDDL_GENERIC_READ, GENERIC_READ },
{ SDDL_GENERIC_WRITE, GENERIC_WRITE },
{ SDDL_GENERIC_EXECUTE, GENERIC_EXECUTE },
{ SDDL_READ_CONTROL, READ_CONTROL },
{ SDDL_STANDARD_DELETE, DELETE },
{ SDDL_WRITE_DAC, WRITE_DAC },
{ SDDL_WRITE_OWNER, WRITE_OWNER },
{ SDDL_READ_PROPERTY, ADS_RIGHT_DS_READ_PROP},
{ SDDL_WRITE_PROPERTY, ADS_RIGHT_DS_WRITE_PROP},
{ SDDL_CREATE_CHILD, ADS_RIGHT_DS_CREATE_CHILD},
{ SDDL_DELETE_CHILD, ADS_RIGHT_DS_DELETE_CHILD},
{ SDDL_LIST_CHILDREN, ADS_RIGHT_ACTRL_DS_LIST},
{ SDDL_SELF_WRITE, ADS_RIGHT_DS_SELF},
{ SDDL_LIST_OBJECT, ADS_RIGHT_DS_LIST_OBJECT},
{ SDDL_DELETE_TREE, ADS_RIGHT_DS_DELETE_TREE},
{ SDDL_CONTROL_ACCESS, ADS_RIGHT_DS_CONTROL_ACCESS},
{ SDDL_FILE_ALL, FILE_ALL_ACCESS },
{ SDDL_FILE_READ, FILE_GENERIC_READ },
{ SDDL_FILE_WRITE, FILE_GENERIC_WRITE },
{ SDDL_FILE_EXECUTE, FILE_GENERIC_EXECUTE },
{ SDDL_KEY_ALL, KEY_ALL_ACCESS },
{ SDDL_KEY_READ, KEY_READ },
{ SDDL_KEY_WRITE, KEY_WRITE },
{ SDDL_KEY_EXECUTE, KEY_EXECUTE },
{ NULL, 0 },
};

View File

@ -1848,19 +1848,16 @@ static void test_ConvertStringSecurityDescriptor(void)
SetLastError(0xdeadbeef);
ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
"D:(A;;RPWPCCDCLCSWLODTCR;;;WD)", SDDL_REVISION_1, &pSD, NULL);
todo_wine
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
LocalFree(pSD);
SetLastError(0xdeadbeef);
ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
"D:(A;;FAFRFWFX;;;WD)", SDDL_REVISION_1, &pSD, NULL);
todo_wine
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
LocalFree(pSD);
SetLastError(0xdeadbeef);
ret = pConvertStringSecurityDescriptorToSecurityDescriptorA(
"D:(A;;KAKRKWKX;;;WD)", SDDL_REVISION_1, &pSD, NULL);
todo_wine
ok(ret, "ConvertStringSecurityDescriptorToSecurityDescriptor failed with error %d\n", GetLastError());
LocalFree(pSD);
SetLastError(0xdeadbeef);

View File

@ -18,6 +18,30 @@
import "oaidl.idl";
typedef enum
{
ADS_RIGHT_DS_CREATE_CHILD = 0x00000001,
ADS_RIGHT_DS_DELETE_CHILD = 0x00000002,
ADS_RIGHT_ACTRL_DS_LIST = 0x00000004,
ADS_RIGHT_DS_SELF = 0x00000008,
ADS_RIGHT_DS_READ_PROP = 0x00000010,
ADS_RIGHT_DS_WRITE_PROP = 0x00000020,
ADS_RIGHT_DS_DELETE_TREE = 0x00000040,
ADS_RIGHT_DS_LIST_OBJECT = 0x00000080,
ADS_RIGHT_DS_CONTROL_ACCESS = 0x00000100,
ADS_RIGHT_DELETE = 0x00010000,
ADS_RIGHT_READ_CONTROL = 0x00020000,
ADS_RIGHT_WRITE_DAC = 0x00040000,
ADS_RIGHT_WRITE_OWNER = 0x00080000,
ADS_RIGHT_SYNCHRONIZE = 0x00100000,
ADS_RIGHT_ACCESS_SYSTEM_SECURITY = 0x00200000,
ADS_RIGHT_GENERIC_ALL = 0x10000000,
ADS_RIGHT_GENERIC_EXECUTE = 0x20000000,
ADS_RIGHT_GENERIC_WRITE = 0x40000000,
ADS_RIGHT_GENERIC_READ = 0x80000000
} ADS_RIGHTS_ENUM;
/*****************************************************************************
* IADsContainer interface