diff options
Diffstat (limited to 'server/plugin.py')
| -rw-r--r-- | server/plugin.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/server/plugin.py b/server/plugin.py index 1f456ef..80e9863 100644 --- a/server/plugin.py +++ b/server/plugin.py @@ -16,12 +16,13 @@ class AliasQuery(ElementBase): namespace = 'alias:query' name = 'query' plugin_attrib = 'alias' - interfaces = set(('node', 'type', 'content', 'permission')) + interfaces = set(('node', 'type', 'content', 'permission', 'key')) sub_interfaces = set(('content', 'permission')) - def addItem(self, node, permission = None): + def addItem(self, node, key, permission = None): item = AliasItem(None, self) item['node'] = node + item['key']= key if permission is not None: item['permission'] = str(permission) @@ -29,7 +30,7 @@ class AliasItem(ElementBase): namespace = 'alias:query' name = 'item' plugin_attrib = 'item' - interfaces = set(('node', 'permission')) + interfaces = set(('node', 'permission', 'key' )) class AliasPlugin(base.base_plugin): @@ -62,9 +63,8 @@ class AliasPlugin(base.base_plugin): node = iq['alias']['node'] if not node: node = hashlib.sha1(callee).hexdigest() - node = Object(callee, node) - + if iq['alias']['type'] == 'items': try: childs = node.get_child_list(caller) @@ -74,13 +74,14 @@ class AliasPlugin(base.base_plugin): iq.reply() iq['alias']['type'] = 'items' iq['alias']['node'] = node.hash - for name, perm in childs: - iq['alias'].addItem(name, perm) + for name, perm, key in childs: + iq['alias'].addItem(name, key, perm) iq.send() if iq['alias']['type'] == 'content': try: content = node.get_content(caller) + key = node.get_key(caller) except PermissionError: self.send_permission_error(iq, 'Permission') else: @@ -88,4 +89,5 @@ class AliasPlugin(base.base_plugin): iq['alias']['type'] = 'content' iq['alias']['node'] = node.hash iq['alias']['content'] = content + iq['alias']['key'] = key iq.send()
\ No newline at end of file |
