diff options
| author | Guillaume Horel <guillaume.horel@gmail.com> | 2011-01-21 01:06:44 -0500 |
|---|---|---|
| committer | Guillaume Horel <guillaume.horel@gmail.com> | 2011-01-21 01:06:44 -0500 |
| commit | b9bc4eaa3d73977d269161662d8a11a210ef79df (patch) | |
| tree | deb5dbeb7596a6fb0f5cbdd87db0a0f8b947e11c /server/object.py | |
| parent | 811e03d7765001aa2da20ab37d41e1c92b4ae53b (diff) | |
| download | alias-b9bc4eaa3d73977d269161662d8a11a210ef79df.tar.gz | |
Added key management to the component server
Diffstat (limited to 'server/object.py')
| -rw-r--r-- | server/object.py | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/server/object.py b/server/object.py index 73bd96e..2c1692a 100644 --- a/server/object.py +++ b/server/object.py @@ -36,22 +36,34 @@ class Object: def get_permission(self, user): file = open(self.path + 'permissions', 'r') for line in file: - name, sep, perm = line.rstrip('\n').partition(' ') + name, perm, None = line.split() if name == user: return int(perm) return 0 - + + def get_key(self, user): + file = open(self.path + 'permissions', 'r') + for line in file: + name, perm, key = line.split() + if name == user: + if not int(perm) & READ: + logging.error("User {} doesn't have read access to object {}" + .format(user, self.hash)) + raise PermissionError + return key + return 0 + def get_child_list(self, user): perm = self.get_permission(user) - if not perm & LIST : + if not perm & LIST: logging.error("User {} doesn't have the list permission for object {}" .format(user, self.hash)) raise PermissionError file = open(self.path + "childs", 'r') result = [] - for line in file : + for line in file: name = line.rstrip('\n') try: child = Object(self.owner, name) @@ -60,15 +72,16 @@ class Object: self.owner)) else: permission = child.get_permission(user) + key = child.get_key(user) if permission > 0: - result.append((name, permission)) + result.append((name, permission, key)) file.close() return result def get_content(self, user): perm = self.get_permission(user) - if not perm & READ : + if not perm & READ: logging.error("User {} doesn't have read access to object {}" .format(user, self.hash)) raise PermissionError |
