summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Potter <tpot@samba.org>2004-02-26 22:58:18 +0000
committerTim Potter <tpot@samba.org>2004-02-26 22:58:18 +0000
commite9f51e2ea9442c28a5fed0e931d6d4920dbd517d (patch)
tree7e77c2da133e7f653fcf2223d58e98aee13f9350
parent5cd5e246c1330287a8393ed0eaddc028f2efc469 (diff)
downloadsamba-e9f51e2ea9442c28a5fed0e931d6d4920dbd517d.tar.gz
samba-e9f51e2ea9442c28a5fed0e931d6d4920dbd517d.tar.bz2
samba-e9f51e2ea9442c28a5fed0e931d6d4920dbd517d.zip
Fix for writable printerdata problem - bugzilla #1112.
(This used to be commit 892b16404033bbaf72a5a04f558cb41ef544739e)
-rw-r--r--source3/python/samba/printerdata.py18
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)