From bfd24043e3f728e960cf8c8829df36d799505106 Mon Sep 17 00:00:00 2001 From: bescoto Date: Thu, 18 Sep 2003 02:10:14 +0000 Subject: Added --never-drop-acls, ACL entry dropping. Final for 0.13.2 git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@442 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109 --- rdiff-backup/rdiff_backup/user_group.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'rdiff-backup/rdiff_backup/user_group.py') diff --git a/rdiff-backup/rdiff_backup/user_group.py b/rdiff-backup/rdiff_backup/user_group.py index 896e60e..b34f0cf 100644 --- a/rdiff-backup/rdiff_backup/user_group.py +++ b/rdiff-backup/rdiff_backup/user_group.py @@ -60,6 +60,16 @@ def gid2gname(gid): gid2gname_dict[gid] = gname return gname +def uname2uid(uname): + """Given uname, return uid or None if cannot find""" + try: uname = pwd.getpwnam(uname)[2] + except KeyError: return None + +def gname2gid(gname): + """Given gname, return gid or None if cannot find""" + try: gname = grp.getgrnam(gname)[2] + except KeyError: return None + class Map: """Used for mapping names and id on source side to dest side""" @@ -77,12 +87,25 @@ class Map: self.name2id_dict[name] = out_id return out_id + def get_id_from_name(self, name): + """Return mapped id from name only, or None if cannot""" + try: return self.name2id_dict[name] + except KeyError: + out_id = self.find_id_from_name(name) + self.name2id_dict[name] = out_id + return out_id + def get_id_from_id(self, id): return id def find_id(self, id, name): """Find the proper id to use with given id and name""" try: return self.name2id_func(name) except KeyError: return id + + def find_id_from_name(self, name): + """Look up proper id to use with name, or None""" + try: return self.name2id_func(name) + except KeyError: return None class DefinedMap(Map): """Map names and ids on source side to appropriate ids on dest side @@ -134,6 +157,11 @@ class DefinedMap(Map): try: return self.id_mapping_dict[id] except KeyError: return Map.find_id(self, id, name) + def find_id_from_name(self, name): + """Find id to map name to, or None if we can't""" + try: return self.name_mapping_dict[name] + except KeyError: return Map.find_id_from_name(name) + def init_user_mapping(mapping_string = None): """Initialize user mapping with given mapping string or None""" global UserMap -- cgit v1.2.1