diff options
author | Tim Potter <tpot@samba.org> | 2004-02-26 22:58:18 +0000 |
---|---|---|
committer | Tim Potter <tpot@samba.org> | 2004-02-26 22:58:18 +0000 |
commit | e9f51e2ea9442c28a5fed0e931d6d4920dbd517d (patch) | |
tree | 7e77c2da133e7f653fcf2223d58e98aee13f9350 /source3 | |
parent | 5cd5e246c1330287a8393ed0eaddc028f2efc469 (diff) | |
download | samba-e9f51e2ea9442c28a5fed0e931d6d4920dbd517d.tar.gz samba-e9f51e2ea9442c28a5fed0e931d6d4920dbd517d.tar.bz2 samba-e9f51e2ea9442c28a5fed0e931d6d4920dbd517d.zip |
Fix for writable printerdata problem - bugzilla #1112.
(This used to be commit 892b16404033bbaf72a5a04f558cb41ef544739e)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/python/samba/printerdata.py | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/source3/python/samba/printerdata.py b/source3/python/samba/printerdata.py index 33251f6a00..0b53a3dfb5 100644 --- a/source3/python/samba/printerdata.py +++ b/source3/python/samba/printerdata.py @@ -15,8 +15,10 @@ from samba import spoolss class printerdata: - def __init__(self, host, creds = {}): - self.hnd = spoolss.openprinter(host, creds = creds) + def __init__(self, host, creds = {}, access = 0x02000000): + # For read access, use MAXIMUM_ALLOWED_ACCESS = 0x02000000 + # For write access, use PRINTER_ACCESS_ADMINISTER = 0x00000004 + self.hnd = spoolss.openprinter(host, creds = creds, access = access) def keys(self): return self.hnd.enumprinterdata().keys() @@ -30,10 +32,14 @@ class printerdata: "data": value}) class printerdata_ex: - def __init__(self, host): + def __init__(self, host, creds = {}, access = 0x02000000): + # For read access, use MAXIMUM_ALLOWED_ACCESS = 0x02000000 + # For write access, use PRINTER_ACCESS_ADMINISTER = 0x00000004 self.host = host self.top_level_keys = ["PrinterDriverData", "DsSpooler", "DsDriver", "DsUser"] + self.creds = creds + self.access = access def keys(self): return self.top_level_keys @@ -45,8 +51,8 @@ class printerdata_ex: return 0 class printerdata_ex_subkey: - def __init__(self, host, key): - self.hnd = spoolss.openprinter(host) + def __init__(self, host, key, creds, access): + self.hnd = spoolss.openprinter(host, creds, access) self.key = key def keys(self): @@ -56,4 +62,4 @@ class printerdata_ex: return self.hnd.getprinterdataex(self.key, key)['data'] def __getitem__(self, key): - return self.printerdata_ex_subkey(self.host, key) + return self.printerdata_ex_subkey(self.host, key, creds, access) |