mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-14 15:00:16 +02:00
Corrected form validation
Corrected logging comments
This commit is contained in:
parent
696483baa6
commit
cce940f9a2
@ -1,6 +1,7 @@
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from celery.task import periodic_task
|
from celery.task import periodic_task
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from django.contrib.auth.models import Group
|
||||||
|
|
||||||
from models import SyncGroupCache
|
from models import SyncGroupCache
|
||||||
from celery.task.schedules import crontab
|
from celery.task.schedules import crontab
|
||||||
@ -31,7 +32,7 @@ import logging
|
|||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
def disable_member(user, char_id):
|
def disable_member(user):
|
||||||
logger.debug("Disabling member %s" % user)
|
logger.debug("Disabling member %s" % user)
|
||||||
if user.user_permissions.all().exists():
|
if user.user_permissions.all().exists():
|
||||||
logger.info("Clearning user %s permission to deactivate user." % user)
|
logger.info("Clearning user %s permission to deactivate user." % user)
|
||||||
@ -276,7 +277,7 @@ def make_member(user):
|
|||||||
logger.info("Adding user %s to corp group %s" % (user, corp_group))
|
logger.info("Adding user %s to corp group %s" % (user, corp_group))
|
||||||
user.groups.add(corp_group)
|
user.groups.add(corp_group)
|
||||||
for g in user.groups.all():
|
for g in user.groups.all():
|
||||||
if str.startswith(g.name, "Corp_"):
|
if str.startswith(str(g.name), "Corp_"):
|
||||||
if g != corp_group:
|
if g != corp_group:
|
||||||
logger.info("Removing user %s from old corpgroup %s" % (user, g))
|
logger.info("Removing user %s from old corpgroup %s" % (user, g))
|
||||||
user.groups.remove(g)
|
user.groups.remove(g)
|
||||||
@ -305,29 +306,29 @@ def make_blue(user):
|
|||||||
auth.is_blue = True
|
auth.is_blue = True
|
||||||
auth.save()
|
auth.save()
|
||||||
for g in user.groups.all():
|
for g in user.groups.all():
|
||||||
if str.startswith(g.name, 'Corp_'):
|
if str.startswith(str(g.name), 'Corp_'):
|
||||||
logger.info("Removing blue user %s from corp group %s" % (user, g))
|
logger.info("Removing blue user %s from corp group %s" % (user, g))
|
||||||
user.groups.remove(g)
|
user.groups.remove(g)
|
||||||
|
|
||||||
def determine_membership_by_character(char):
|
def determine_membership_by_character(char):
|
||||||
if settings.IS_CORP:
|
if settings.IS_CORP:
|
||||||
if char.corporation_id == settings.CORP_ID:
|
if char.corporation_id == settings.CORP_ID:
|
||||||
logger.debug("User %s main character %s in owning corp id %s" % (user, char, char.corporation_id))
|
logger.debug("Character %s in owning corp id %s" % (char, char.corporation_id))
|
||||||
return "MEMBER"
|
return "MEMBER"
|
||||||
else:
|
else:
|
||||||
if char.alliance_id == settings.ALLIANCE_ID:
|
if char.alliance_id == settings.ALLIANCE_ID:
|
||||||
logger.debug("User %s main character %s in owning alliance id %s" % (user, char, char.alliance_id))
|
logger.debug("Character %s in owning alliance id %s" % (char, char.alliance_id))
|
||||||
return "MEMBER"
|
return "MEMBER"
|
||||||
if EveCorporation.objects.filter(corporation_id=char.corporation_id).exists() is False:
|
if EveCorporationInfo.objects.filter(corporation_id=char.corporation_id).exists() is False:
|
||||||
logger.debug("No corp model for user %s main character %s corp id %s. Unable to check standings. Non-member." % (user, char, char.corporation_id))
|
logger.debug("No corp model for character %s corp id %s. Unable to check standings. Non-member." % (char, char.corporation_id))
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
corp = EveCorporation.objects.get(corporation_id=char.corporation_id)
|
corp = EveCorporationInfo.objects.get(corporation_id=char.corporation_id)
|
||||||
if corp.is_blue:
|
if corp.is_blue:
|
||||||
logger.debug("User %s main character %s member of blue corp %s" % (user, char, corp))
|
logger.debug("Character %s member of blue corp %s" % (char, corp))
|
||||||
return "BLUE"
|
return "BLUE"
|
||||||
else:
|
else:
|
||||||
logger.debug("User %s main character %s member of non-blue corp %s. Non-member." % (user, char, corp))
|
logger.debug("Character %s member of non-blue corp %s. Non-member." % (char, corp))
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def determine_membership_by_user(user):
|
def determine_membership_by_user(user):
|
||||||
@ -338,12 +339,21 @@ def determine_membership_by_user(user):
|
|||||||
char = EveCharacter.objects.get(character_id=auth.main_char_id)
|
char = EveCharacter.objects.get(character_id=auth.main_char_id)
|
||||||
return determine_membership_by_character(char)
|
return determine_membership_by_character(char)
|
||||||
else:
|
else:
|
||||||
logger.debug("Character model matching user %s main character id %s does not exist. Non-member." % (user, auth.main_character_id))
|
logger.debug("Character model matching user %s main character id %s does not exist. Non-member." % (user, auth.main_char_id))
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
logger.debug("User %s has no main character set. Non-member." % user)
|
logger.debug("User %s has no main character set. Non-member." % user)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def set_state(user):
|
||||||
|
state = determine_membership_by_user(user)
|
||||||
|
if state == "MEMBER":
|
||||||
|
make_member(user)
|
||||||
|
elif state == "BLUE":
|
||||||
|
make_blue(user)
|
||||||
|
else:
|
||||||
|
disable_member(user)
|
||||||
|
|
||||||
# Run every minute
|
# Run every minute
|
||||||
@periodic_task(run_every=crontab(minute="*/1"))
|
@periodic_task(run_every=crontab(minute="*/1"))
|
||||||
def run_databaseUpdate():
|
def run_databaseUpdate():
|
||||||
@ -460,6 +470,10 @@ def run_api_refresh():
|
|||||||
if new_character:
|
if new_character:
|
||||||
logger.debug("Creating new character %s from api key %s" % (characters.result[char]['name'], api_key_pair.api_id))
|
logger.debug("Creating new character %s from api key %s" % (characters.result[char]['name'], api_key_pair.api_id))
|
||||||
EveManager.create_characters_from_list(characters, user, api_key_pair.api_key)
|
EveManager.create_characters_from_list(characters, user, api_key_pair.api_key)
|
||||||
|
else:
|
||||||
|
logger.debug("API key %s is no longer valid; it and its characters will be deleted." % api_key_pair.api_id)
|
||||||
|
EveManager.delete_characters_by_api_id(api_key_pair.api_id, user.id)
|
||||||
|
EveManager.delete_api_key_pair(api_key_pair.api_id, user.id)
|
||||||
# Check our main character
|
# Check our main character
|
||||||
if EveCharacter.objects.filter(character_id=authserviceinfo.main_char_id).exists() is False:
|
if EveCharacter.objects.filter(character_id=authserviceinfo.main_char_id).exists() is False:
|
||||||
logger.info("User %s main character id %s missing model. Clearning main character." % (user, authserviceinfo.main_char_id))
|
logger.info("User %s main character id %s missing model. Clearning main character." % (user, authserviceinfo.main_char_id))
|
||||||
|
@ -12,14 +12,16 @@ import logging
|
|||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
class UpdateKeyForm(forms.Form):
|
class UpdateKeyForm(forms.Form):
|
||||||
def __init__(self, user_state=None, *args, **kwargs):
|
user_state = None
|
||||||
super(UpdateKeyForm, self).__init__(args, kwargs)
|
|
||||||
self.user_state=user_state
|
|
||||||
|
|
||||||
api_id = forms.CharField(max_length=254, required=True, label="Key ID")
|
api_id = forms.CharField(max_length=254, required=True, label="Key ID")
|
||||||
api_key = forms.CharField(max_length=254, required=True, label="Verification Code")
|
api_key = forms.CharField(max_length=254, required=True, label="Verification Code")
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
|
super(UpdateKeyForm, self).clean()
|
||||||
|
|
||||||
|
if 'api_id' in self.cleaned_data and 'api_key' in self.cleaned_data:
|
||||||
|
logger.debug("Form has id and key")
|
||||||
if EveManager.check_if_api_key_pair_exist(self.cleaned_data['api_id']):
|
if EveManager.check_if_api_key_pair_exist(self.cleaned_data['api_id']):
|
||||||
logger.debug("UpdateKeyForm failed cleaning as API id %s already exists." % self.cleaned_data['api_id'])
|
logger.debug("UpdateKeyForm failed cleaning as API id %s already exists." % self.cleaned_data['api_id'])
|
||||||
raise forms.ValidationError(u'API key already exist')
|
raise forms.ValidationError(u'API key already exist')
|
||||||
|
@ -21,6 +21,7 @@ from eveonline.models import EveCharacter
|
|||||||
from eveonline.models import EveApiKeyPair
|
from eveonline.models import EveApiKeyPair
|
||||||
from authentication.models import AuthServicesInfo
|
from authentication.models import AuthServicesInfo
|
||||||
from celerytask.tasks import determine_membership_by_user
|
from celerytask.tasks import determine_membership_by_user
|
||||||
|
from celerytask.tasks import set_state
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
@ -49,7 +50,8 @@ def add_api_key(request):
|
|||||||
logger.debug("add_api_key called by user %s" % request.user)
|
logger.debug("add_api_key called by user %s" % request.user)
|
||||||
user_state = determine_membership_by_user(request.user)
|
user_state = determine_membership_by_user(request.user)
|
||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
form = UpdateKeyForm(request.POST, user_state=user_state)
|
form = UpdateKeyForm(request.POST)
|
||||||
|
form.user_state=user_state
|
||||||
logger.debug("Request type POST with form valid: %s" % form.is_valid())
|
logger.debug("Request type POST with form valid: %s" % form.is_valid())
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
EveManager.create_api_keypair(form.cleaned_data['api_id'],
|
EveManager.create_api_keypair(form.cleaned_data['api_id'],
|
||||||
@ -66,7 +68,8 @@ def add_api_key(request):
|
|||||||
logger.debug("Form invalid: returning to form.")
|
logger.debug("Form invalid: returning to form.")
|
||||||
else:
|
else:
|
||||||
logger.debug("Providing empty update key form for user %s" % request.user)
|
logger.debug("Providing empty update key form for user %s" % request.user)
|
||||||
form = UpdateKeyForm(user_state=user_state)
|
form = UpdateKeyForm()
|
||||||
|
form.user_state = user_state
|
||||||
context = {'form': form, 'apikeypairs': EveManager.get_api_key_pairs(request.user.id)}
|
context = {'form': form, 'apikeypairs': EveManager.get_api_key_pairs(request.user.id)}
|
||||||
return render_to_response('registered/addapikey.html', context,
|
return render_to_response('registered/addapikey.html', context,
|
||||||
context_instance=RequestContext(request))
|
context_instance=RequestContext(request))
|
||||||
@ -117,41 +120,8 @@ def characters_view(request):
|
|||||||
def main_character_change(request, char_id):
|
def main_character_change(request, char_id):
|
||||||
logger.debug("main_character_change called by user %s for character id %s" % (request.user, char_id))
|
logger.debug("main_character_change called by user %s for character id %s" % (request.user, char_id))
|
||||||
if EveManager.check_if_character_owned_by_user(char_id, request.user):
|
if EveManager.check_if_character_owned_by_user(char_id, request.user):
|
||||||
previousmainid = AuthServicesInfoManager.get_auth_service_info(request.user).main_char_id
|
|
||||||
AuthServicesInfoManager.update_main_char_Id(char_id, request.user)
|
AuthServicesInfoManager.update_main_char_Id(char_id, request.user)
|
||||||
# Check if character is in the alliance
|
set_state(request.user)
|
||||||
character_info = EveManager.get_character_by_id(char_id)
|
|
||||||
corporation_info = EveManager.get_corporation_info_by_id(character_info.corporation_id)
|
|
||||||
logger.debug("User %s changing main character to %s in corp %s" % (request.user, character_info, corporation_info))
|
|
||||||
if (settings.IS_CORP and EveManager.get_charater_corporation_id_by_id(char_id) == settings.CORP_ID) or (not settings.IS_CORP and EveManager.get_charater_alliance_id_by_id(char_id) == settings.ALLIANCE_ID):
|
|
||||||
add_member_permission(request.user, 'member')
|
|
||||||
add_user_to_group(request.user, settings.DEFAULT_AUTH_GROUP)
|
|
||||||
add_user_to_group(request.user,
|
|
||||||
generate_corp_group_name(EveManager.get_character_by_id(char_id).corporation_name))
|
|
||||||
logger.info("User %s transitioned to full member by chaning main character to %s" % (request.user, character_info))
|
|
||||||
|
|
||||||
elif corporation_info != None:
|
|
||||||
if corporation_info.is_blue:
|
|
||||||
add_member_permission(request.user, 'blue_member')
|
|
||||||
add_user_to_group(request.user, settings.DEFAULT_BLUE_GROUP)
|
|
||||||
AuthServicesInfoManager.update_is_blue(True, request.user)
|
|
||||||
logger.info("User %s transitioned to blue by changing main character to %s" % (request.user, character_info))
|
|
||||||
else:
|
|
||||||
if check_if_user_has_permission(request.user, 'member'):
|
|
||||||
disable_member(request.user, previousmainid)
|
|
||||||
|
|
||||||
if check_if_user_has_permission(request.user, 'blue_member'):
|
|
||||||
disable_blue_member(request.user)
|
|
||||||
logger.info("User %s disabled as new main character %s not member nor blue." % (request.user, character_info))
|
|
||||||
else:
|
|
||||||
# TODO: disable serivces
|
|
||||||
if check_if_user_has_permission(request.user, 'member'):
|
|
||||||
disable_member(request.user, previousmainid)
|
|
||||||
|
|
||||||
if check_if_user_has_permission(request.user, 'blue_member'):
|
|
||||||
disable_blue_member(request.user)
|
|
||||||
logger.info("User %s disabled as new main character %s does not have corp model to check." % (request.user, character_info))
|
|
||||||
|
|
||||||
return HttpResponseRedirect("/characters")
|
return HttpResponseRedirect("/characters")
|
||||||
return HttpResponseRedirect("/characters")
|
return HttpResponseRedirect("/characters")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user