aboutsummaryrefslogtreecommitdiffstats
path: root/server/plugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/plugin.py')
-rw-r--r--server/plugin.py16
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