mirror of
https://github.com/samba-team/samba.git
synced 2025-07-28 11:42:03 +03:00
samba3-python: Add methods to get any entry (user/group) and its sid from idmap
This is required in upgrade_s3 script to migrate idmap database from s3 to s4 Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org> Signed-off-by: Andrew Bartlett <abartlet@samba.org>
This commit is contained in:
committed by
Andrew Bartlett
parent
c71e781e7d
commit
57b9f1b502
@ -208,6 +208,14 @@ class IdmapDatabase(TdbDatabase):
|
||||
def _check_version(self):
|
||||
assert fetch_int32(self.tdb, "IDMAP_VERSION\0") == IDMAP_VERSION_V2
|
||||
|
||||
def ids(self):
|
||||
"""Retrieve a list of all ids in this database."""
|
||||
for k in self.tdb.iterkeys():
|
||||
if k.startswith(IDMAP_USER_PREFIX):
|
||||
yield k.rstrip("\0").split(" ")
|
||||
if k.startswith(IDMAP_GROUP_PREFIX):
|
||||
yield k.rstrip("\0").split(" ")
|
||||
|
||||
def uids(self):
|
||||
"""Retrieve a list of all uids in this database."""
|
||||
for k in self.tdb.iterkeys():
|
||||
@ -220,6 +228,12 @@ class IdmapDatabase(TdbDatabase):
|
||||
if k.startswith(IDMAP_GROUP_PREFIX):
|
||||
yield int(k[len(IDMAP_GROUP_PREFIX):].rstrip("\0"))
|
||||
|
||||
def get_sid(self, xid, id_type):
|
||||
data = self.tdb.get("%s %s\0" % (id_type, str(xid)))
|
||||
if data is None:
|
||||
return data
|
||||
return data.rstrip("\0")
|
||||
|
||||
def get_user_sid(self, uid):
|
||||
"""Retrieve the SID associated with a particular uid.
|
||||
|
||||
|
Reference in New Issue
Block a user