class uchandler(asynchat.async_chat):
def __init__(self, sock):
asynchat.async_chat.__init__(self, sock)
self.ibuffer = []
self.set_terminator('\n')
def _false(self):
self.push('0')
self.close_when_done()
def _true(self):
self.push('1')
self.close_when_done()
def collect_incoming_data(self, data):
'Buffer the data'
self.ibuffer.append(data)
def found_terminator(self):
data = ''.join(self.ibuffer)
self.ibuffer = []
try:
username, repo = data.split(',')
repouser, reponame = repo.split('/')
except ValueError:
return self._false()
self.handle_request(username, repouser, reponame)
def handle_request(self, username, repouser, reponame):
print username, repouser, reponame
try:
repo = Repo.objects.get(user_username=repouser, name=reponame)
user = User.objects.get(username=username)
except (Repo.DoesNotExist, User.DoesNotExist):
print 'wtf'
return self._false()
if repo.check_write(user):
print 'true'
self._true()
else:
print 'false'
self._false()