summaryrefslogtreecommitdiffstats
path: root/pyload/remote/thriftbackend/Processor.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/remote/thriftbackend/Processor.py')
-rw-r--r--pyload/remote/thriftbackend/Processor.py77
1 files changed, 0 insertions, 77 deletions
diff --git a/pyload/remote/thriftbackend/Processor.py b/pyload/remote/thriftbackend/Processor.py
deleted file mode 100644
index 683697d1c..000000000
--- a/pyload/remote/thriftbackend/Processor.py
+++ /dev/null
@@ -1,77 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from pyload.remote.thriftbackend.thriftgen.pyload import Pyload
-
-class Processor(Pyload.Processor):
- def __init__(self, *args, **kwargs):
- Pyload.Processor.__init__(self, *args, **kwargs)
- self.authenticated = {}
-
- def process(self, iprot, oprot):
- trans = oprot.trans
- if trans not in self.authenticated:
- self.authenticated[trans] = False
- oldclose = trans.close
-
- def wrap():
- if self in self.authenticated:
- del self.authenticated[trans]
- oldclose()
-
- trans.close = wrap
- authenticated = self.authenticated[trans]
- (name, type, seqid) = iprot.readMessageBegin()
-
- # unknown method
- if name not in self._processMap:
- iprot.skip(Pyload.TType.STRUCT)
- iprot.readMessageEnd()
- x = Pyload.TApplicationException(Pyload.TApplicationException.UNKNOWN_METHOD, 'Unknown function %s' % name)
- oprot.writeMessageBegin(name, Pyload.TMessageType.EXCEPTION, seqid)
- x.write(oprot)
- oprot.writeMessageEnd()
- oprot.trans.flush()
- return
-
- # not logged in
- elif not authenticated and not name == "login":
- iprot.skip(Pyload.TType.STRUCT)
- iprot.readMessageEnd()
- # 20 - Not logged in (in situ declared error code)
- x = Pyload.TApplicationException(20, 'Not logged in')
- oprot.writeMessageBegin(name, Pyload.TMessageType.EXCEPTION, seqid)
- x.write(oprot)
- oprot.writeMessageEnd()
- oprot.trans.flush()
- return
-
- elif not authenticated and name == "login":
- args = Pyload.login_args()
- args.read(iprot)
- iprot.readMessageEnd()
- result = Pyload.login_result()
- # api login
- self.authenticated[trans] = self._handler.checkAuth(args.username, args.password, trans.remoteaddr[0])
-
- result.success = True if self.authenticated[trans] else False
- oprot.writeMessageBegin("login", Pyload.TMessageType.REPLY, seqid)
- result.write(oprot)
- oprot.writeMessageEnd()
- oprot.trans.flush()
-
- elif self._handler.isAuthorized(name, authenticated):
- self._processMap[name](self, seqid, iprot, oprot)
-
- else:
- #no permission
- iprot.skip(Pyload.TType.STRUCT)
- iprot.readMessageEnd()
- # 21 - Not authorized
- x = Pyload.TApplicationException(21, 'Not authorized')
- oprot.writeMessageBegin(name, Pyload.TMessageType.EXCEPTION, seqid)
- x.write(oprot)
- oprot.writeMessageEnd()
- oprot.trans.flush()
- return
-
- return True