diff options
| author | 2013-08-18 17:01:17 +0200 | |
|---|---|---|
| committer | 2013-08-18 17:01:17 +0200 | |
| commit | 9a6ea22616cf3cc67e292c908521b79764400faf (patch) | |
| tree | 1924843f28d992490d867d0557da90dfb1da6404 /pyload/remote/wsbackend | |
| parent | fixed login (diff) | |
| download | pyload-9a6ea22616cf3cc67e292c908521b79764400faf.tar.xz | |
new linkgrabber
Diffstat (limited to 'pyload/remote/wsbackend')
| -rw-r--r-- | pyload/remote/wsbackend/AsyncHandler.py | 13 | 
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: | 
