Convert update-directors into a full command

This commit is contained in:
2011-03-16 08:40:36 +00:00
parent 2cd6426dc2
commit 8844e2f6b4
2 changed files with 24 additions and 42 deletions

View File

@@ -160,11 +160,14 @@ FULL_API_CHARACTER_ID = 246102445
BANNED_EMAIL_DOMAINS = ['att.net']
## Eve Proxy settings
EVE_PROXY_KEEP_LOGS = 30
## Director management settings
IGNORE_CORP_GROUPS = [29]
# try and import local settings
try:
from conf.settingslocal import *

View File

@@ -1,50 +1,29 @@
#!/usr/bin/env python
"""Executes a Django cronjob"""
PACS = 29
import os, sys
# Set niceness
os.nice(20)
# Activate the virtualenv
path = os.path.dirname(os.path.realpath( __file__ ))
os.chdir(path)
activate_this = os.path.join(path, 'env/bin/activate_this.py')
execfile(activate_this, dict(__file__=activate_this))
from django.core.management import setup_environ
import settings
setup_environ(settings)
from eve_api.models import EVEPlayerCharacter
from django.conf import settings
from django.core.management.base import NoArgsCommand
from django.contrib.auth.models import Group, User
from eve_api.models import EVEPlayerCharacter
from sso.tasks import update_user_access
g = Group.objects.get(name="Alliance Directors")
class Command(NoArgsCommand):
help = "Updates the members of the alliance director group"
users = []
for char in EVEPlayerCharacter.objects.filter(corporation__alliance__name="Test Alliance Please Ignore",director=True):
if char.eveaccount_set.count() and char.eveaccount_set.all()[0].user and not (char.corporation.group and char.corporation.group.id == PACS):
users.append(char.eveaccount_set.all()[0].user)
def handle_noargs(self, **options):
g = Group.objects.get(name="Alliance Directors")
add = set(users) - set(g.user_set.all())
rem = set(g.user_set.all()) - set(users)
users = []
for char in EVEPlayerCharacter.objects.filter(corporation__alliance__name="Test Alliance Please Ignore",roles__name="roleDirector"):
if char.eveaccount_set.count() and char.eveaccount_set.all()[0].user and not (char.corporation.group and char.corporation.group.id in settings.IGNORE_CORP_GROUPS):
users.append(char.eveaccount_set.all()[0].user)
print "Add:", add
print "Rem:", rem
add = set(users) - set(g.user_set.all())
rem = set(g.user_set.all()) - set(users)
print g.user_set.all()
for m in rem:
m.groups.remove(g)
update_user_access.delay(m.id)
for m in rem:
m.groups.remove(g)
update_user_access.delay(m.id)
for m in add:
m.groups.add(g)
update_user_access.delay(m.id)
#for u in set(users):
# print "Updating %s" % u
# update_user_access.delay(u.id)
for m in add:
m.groups.add(g)
update_user_access.delay(m.id)