Rewrite session handling URLs to make a little more sense

This commit is contained in:
Trever Fischer
2012-04-02 17:40:29 -04:00
parent 1edef53f65
commit 433bb7d8ca
3 changed files with 30 additions and 19 deletions

View File

@@ -62,22 +62,35 @@ class ServerHandler(AnonymousBaseHandler):
serverTime = -1
return {"hostname":hostname, "port":s.port, "players": playerList, "time":serverTime, "rules": s.ruleset.split('\n')}
class PlayerSessionHandler(BaseHandler):
allowed_methods = ('POST', 'PUT')
model = PlayerSession
class NewPlayerSessionHandler(BaseHandler):
allowed_methods = ('POST',)
def create(self, request, playername):
ip = request.POST['ip']
try:
profile = MinecraftProfile.objects.all().filter(mc_username__iexact=playername)[0]
except IndexError, e:
return {'valid': False, 'error': 'User not found', 'permissions': []}
if profile.user.is_active:
perms = []
if profile.user.is_staff:
perms.append('bukkit.command.op.give')
ip = request.POST['ip']
server = request.server
profile = MinecraftProfile.objects.get(mc_username__exact=playername)
session = PlayerSession.objects.create(server=server, player=profile, ip=ip)
return {'success': True, 'error': '', 'permissions': perms, 'sessionId': session.id}
else:
return {'success': False, 'error': 'Your account is inactive.', 'permissions': []}
server = request.server
profile = MinecraftProfile.objects.get(mc_username__exact=playername)
session = PlayerSession.objects.create(server=server, player=profile, ip=ip)
return {'session':session.id}
class ClosePlayerSessionHandler(BaseHandler):
allowed_methods = ('GET',)
def update(self, request, playername):
session = PlayerSession.objects.get(id__exact=request.POST['session'])
session.end = datetime.now()
session.save()
def read(self, request, playername):
sessions = PlayerSession.objects.all().filter(player__mc_username__iexact=playername, end=None)
for session in sessions:
session.end = datetime.now()
session.save()
return {'success': True}
class EconomyHandler(BaseHandler):
allowed_methods = ('PUT','GET')