summaryrefslogtreecommitdiffstats
path: root/pyload/remote/wsbackend
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-08-18 17:01:17 +0200
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2013-08-18 17:01:17 +0200
commit9a6ea22616cf3cc67e292c908521b79764400faf (patch)
tree1924843f28d992490d867d0557da90dfb1da6404 /pyload/remote/wsbackend
parentfixed login (diff)
downloadpyload-9a6ea22616cf3cc67e292c908521b79764400faf.tar.xz
new linkgrabber
Diffstat (limited to 'pyload/remote/wsbackend')
-rw-r--r--pyload/remote/wsbackend/AsyncHandler.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/pyload/remote/wsbackend/AsyncHandler.py b/pyload/remote/wsbackend/AsyncHandler.py
index 7eee40707..d53d6bcea 100644
--- a/pyload/remote/wsbackend/AsyncHandler.py
+++ b/pyload/remote/wsbackend/AsyncHandler.py
@@ -75,10 +75,18 @@ class AsyncHandler(AbstractHandler):
pass
@lock
- def add_event(self, event, *args):
+ def add_event(self, event, *args, **kwargs):
# Convert arguments to json suited instance
event = EventInfo(event, [x.toInfoData() if hasattr(x, 'toInfoData') else x for x in args])
+ # use the user kwarg argument to determine access
+ user = None
+ if 'user' in kwargs:
+ user = kwargs['user']
+ del kwargs['user']
+ if hasattr(user, 'uid'):
+ user = user.uid
+
for req in self.clients:
# Not logged in yet
if not req.api: continue
@@ -87,6 +95,9 @@ class AsyncHandler(AbstractHandler):
# TODO: events are security critical, this should be revised later
# TODO: permissions? interaction etc
if not req.api.user.isAdmin():
+ if user is not None and req.api.primaryUID != user:
+ break
+
skip = False
for arg in args:
if hasattr(arg, 'owner') and arg.owner != req.api.primaryUID: