Add a method to the profile model to get permissions

This commit is contained in:
Trever Fischer
2012-04-03 21:10:52 -04:00
parent 6496eef466
commit 478deda980
2 changed files with 11 additions and 11 deletions

View File

@@ -17,13 +17,7 @@ class WhitelistHandler(AnonymousBaseHandler):
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')
for group in profile.user.groups.all():
for perm in group.minecraftgroup.permissionList.split("\n"):
perms.append(perm.strip())
return {'valid': True, 'error': '', 'permissions': perms}
return {'valid': True, 'error': '', 'permissions': profile.serverPermissions()}
else:
return {'valid': False, 'error': 'Your account is inactive.', 'permissions': []}
@@ -74,14 +68,11 @@ class NewPlayerSessionHandler(BaseHandler):
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}
return {'success': True, 'error': '', 'permissions': profile.serverPermissions(), 'sessionId': session.id}
else:
return {'success': False, 'error': 'Your account is inactive.', 'permissions': []}

View File

@@ -10,6 +10,15 @@ class MinecraftProfile(models.Model):
user = models.OneToOneField(User)
mc_username = models.CharField(max_length=30, verbose_name="Minecraft.net Username", unique=True)
def serverPermissions(self):
perms = []
if self.user.is_staff:
perms.append('bukkit.command.op.give')
for group in self.user.groups.all():
for perm in group.minecraftgroup.permissionList.split("\n"):
perms.append(perm.strip())
return perms
def __unicode__(self):
return self.mc_username