Now allows access permissions on a alliance level

This commit is contained in:
2010-05-08 18:03:24 +01:00
parent 8f0d00a6dc
commit abc214ea18
4 changed files with 17 additions and 3 deletions

View File

@@ -1 +1 @@
SEQUENCE = ['applications-field', 'total-sp', 'login-locations', 'director-update']
SEQUENCE = ['applications-field', 'total-sp', 'login-locations', 'director-update', 'alliance-group']

View File

@@ -0,0 +1,7 @@
from django_evolution.mutations import *
from django.db import models
MUTATIONS = [
AddField('EVEPlayerAlliance', 'group', models.ForeignKey, null=True, related_model='auth.Group')
]

View File

@@ -126,6 +126,7 @@ class EVEPlayerAlliance(EVEAPIModel):
#executor_character = models.ForeignKey(EVECharacter, blank=True, null=False)
member_count = models.IntegerField(blank=True, null=True)
date_founded = models.DateField(blank=True, null=True)
group = models.ForeignKey(Group, blank=True, null=True)
objects = EVEPlayerAllianceManager()

View File

@@ -5,7 +5,7 @@ import logging
from django.db import models
from django.db.models import signals
from django.contrib.auth.models import User, UserManager, Group
from eve_api.models import EVEAccount, EVEPlayerCorporation
from eve_api.models import EVEAccount, EVEPlayerCorporation, EVEPlayerAlliance
from reddit.models import RedditAccount
from services import get_api
@@ -48,11 +48,14 @@ class SSOUser(models.Model):
access accordingly """
self._log.debug("Update - User %s" % self.user)
# Create a list of all Corp groups
# Create a list of all Corp and Alliance groups
corpgroups = []
for corp in EVEPlayerCorporation.objects.filter(group__isnull=False):
if corp.group:
corpgroups.append(corp.group)
for alliance in EVEPlayerAlliance.objects.filter(group__isnull=False):
if alliance.group:
corpgroups.append(alliance.group)
# Create a list of Char groups
chargroups = []
@@ -61,6 +64,9 @@ class SSOUser(models.Model):
for char in eacc.characters.all():
if char.corporation.group:
chargroups.append(char.corporation.group)
if char.corporation.alliance:
if char.corporation.alliance.group:
chargroups.append(char.corporation.alliance.group)
# Generate the list of groups to add/remove
delgroups = set(set(self.user.groups.all()) & set(corpgroups)) - set(chargroups)