diff options
Diffstat (limited to 'module/remote/thriftbackend/Processor.py')
-rw-r--r-- | module/remote/thriftbackend/Processor.py | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/module/remote/thriftbackend/Processor.py b/module/remote/thriftbackend/Processor.py deleted file mode 100644 index a8b87c82c..000000000 --- a/module/remote/thriftbackend/Processor.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- - -from 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 |