chiark
/
gitweb
/
~mdw
/
disorder
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use users.db. trackdb* moves to lib/, as it's now used by client.c to
[disorder]
/
python
/
disorder.py.in
diff --git
a/python/disorder.py.in
b/python/disorder.py.in
index c501be5b8802002d3bb45b16b85d1f8f39dca23c..64789815fddc7214f1f290b1421af926ddf73115 100644
(file)
--- a/
python/disorder.py.in
+++ b/
python/disorder.py.in
@@
-276,7
+276,7
@@
class client:
debug_proto = 0x0001
debug_body = 0x0002
debug_proto = 0x0001
debug_body = 0x0002
- def __init__(self):
+ def __init__(self
, user=None, password=None
):
"""Constructor for DisOrder client class.
The constructor reads the configuration file, but does not connect
"""Constructor for DisOrder client class.
The constructor reads the configuration file, but does not connect
@@
-294,6
+294,8
@@
class client:
self.config = { 'collections': [],
'username': pw.pw_name,
'home': _dbhome }
self.config = { 'collections': [],
'username': pw.pw_name,
'home': _dbhome }
+ self.user = user
+ self.password = password
home = os.getenv("HOME")
if not home:
home = pw.pw_dir
home = os.getenv("HOME")
if not home:
home = pw.pw_dir
@@
-375,10
+377,18
@@
class client:
self.r = s.makefile("rb")
(res, challenge) = self._simple()
if cookie is None:
self.r = s.makefile("rb")
(res, challenge) = self._simple()
if cookie is None:
+ if self.user is None:
+ user = self.config['username']
+ else:
+ user = self.user
+ if self.password is None:
+ password = self.config['password']
+ else:
+ password = self.password
h = sha.sha()
h = sha.sha()
- h.update(
self.config['password']
)
+ h.update(
password
)
h.update(binascii.unhexlify(challenge))
h.update(binascii.unhexlify(challenge))
- self._simple("user",
self.config['username']
, h.hexdigest())
+ self._simple("user",
user
, h.hexdigest())
else:
self._simple("cookie", cookie)
self.state = 'connected'
else:
self._simple("cookie", cookie)
self.state = 'connected'
@@
-850,6
+860,14
@@
class client:
"""Revoke a login cookie"""
self._simple("revoke")
"""Revoke a login cookie"""
self._simple("revoke")
+ def adduser(self, user, password):
+ """Create a user"""
+ self._simple("adduser", user, password)
+
+ def deluser(self, user):
+ """Delete a user"""
+ self._simple("deluser", user)
+
########################################################################
# I/O infrastructure
########################################################################
# I/O infrastructure