Logging everywhere.

Corrected corp model updating logic to handle owning corp.
Corrected typecasting during api access mask comparison.
Removed error protection during user TS3 group updating to propogate errors.

Relevent issues:
Sorry for the spam.
This commit is contained in:
Adarnof
2016-01-02 21:24:40 +00:00
parent 9225896938
commit a789edb3d8
16 changed files with 505 additions and 57 deletions

View File

@@ -2,6 +2,9 @@ from django.contrib.auth.models import User
from models import AuthServicesInfo
import logging
logger = logging.getLogger(__name__)
class AuthServicesInfoManager:
def __init__(self):
@@ -10,10 +13,11 @@ class AuthServicesInfoManager:
@staticmethod
def __get_or_create(user):
if AuthServicesInfo.objects.filter(user=user).exists():
logger.debug("Returning existing authservicesinfo model for user %s" % user)
return AuthServicesInfo.objects.get(user=user)
else:
# We have to create
print 'here'
logger.info("Creating new authservicesinfo model for user %s" % user)
authserviceinfo = AuthServicesInfo()
authserviceinfo.user = user
authserviceinfo.save()
@@ -23,66 +27,96 @@ class AuthServicesInfoManager:
def get_auth_service_info(user):
if User.objects.filter(username=user.username).exists():
return AuthServicesInfoManager.__get_or_create(user)
logger.error("Failed to get authservicesinfo object for user %s: user does not exist." % user)
return None
@staticmethod
def update_main_char_Id(char_id, user):
if User.objects.filter(username=user.username).exists():
logger.debug("Updating user %s main character to id %s" % (user, char_id))
authserviceinfo = AuthServicesInfoManager.__get_or_create(user)
authserviceinfo.main_char_id = char_id
authserviceinfo.save(update_fields=['main_char_id'])
logger.info("Updated user %s main character to id %s" % (user, char_id))
logger.error("Failed to update user %s main character id to %s: user does not exist." % (user, char_id))
@staticmethod
def update_user_forum_info(username, password, user):
if User.objects.filter(username=user.username).exists():
logger.debug("Updating user %s forum info: username %s" % (user, username))
authserviceinfo = AuthServicesInfoManager.__get_or_create(user)
authserviceinfo.forum_username = username
authserviceinfo.forum_password = password
authserviceinfo.save(update_fields=['forum_username', 'forum_password'])
logger.info("Updated user %s forum info in authservicesinfo model." % user)
else:
logger.error("Failed to update user %s forum info: user does not exist." % user)
@staticmethod
def update_user_jabber_info(username, password, user):
if User.objects.filter(username=user.username).exists():
logger.debug("Updating user %s jabber info: username %s" % (user, username))
authserviceinfo = AuthServicesInfoManager.__get_or_create(user)
authserviceinfo.jabber_username = username
authserviceinfo.jabber_password = password
authserviceinfo.save(update_fields=['jabber_username', 'jabber_password'])
logger.info("Updated user %s jabber info in authservicesinfo model." % user)
else:
logger.error("Failed to update user %s jabber info: user does not exist." % user)
@staticmethod
def update_user_mumble_info(username, password, user):
if User.objects.filter(username=user.username).exists():
logger.debug("Updating user %s mumble info: username %s" % (user, username))
authserviceinfo = AuthServicesInfoManager.__get_or_create(user)
authserviceinfo.mumble_username = username
authserviceinfo.mumble_password = password
authserviceinfo.save(update_fields=['mumble_username', 'mumble_password'])
logger.info("Updated user %s mumble info in authservicesinfo model." % user)
else:
logger.error("Failed to update user %s mumble info: user does not exist." % user)
@staticmethod
def update_user_ipboard_info(username, password, user):
if User.objects.filter(username=user.username).exists():
logger.debug("Updating user %s ipboard info: uername %s" % (user, username))
authserviceinfo = AuthServicesInfoManager.__get_or_create(user)
authserviceinfo.ipboard_username = username
authserviceinfo.ipboard_password = password
authserviceinfo.save(update_fields=['ipboard_username', 'ipboard_password'])
logger.info("Updated user %s ipboard info in authservicesinfo model." % user)
else:
logger.error("Failed to update user %s ipboard info: user does not exist." % user)
@staticmethod
def update_user_teamspeak3_info(uid, perm_key, user):
if User.objects.filter(username=user.username).exists():
logger.debug("Updating user %s teamspeak3 info: uid %s" % (user, uid))
authserviceinfo = AuthServicesInfoManager.__get_or_create(user)
authserviceinfo.teamspeak3_uid = uid
authserviceinfo.teamspeak3_perm_key = perm_key
authserviceinfo.save(update_fields=['teamspeak3_uid', 'teamspeak3_perm_key'])
logger.info("Updated user %s teamspeak3 info in authservicesinfo model." % user)
else:
logger.error("Failed to update user %s teamspeak3 info: user does not exist." % user)
@staticmethod
def update_is_blue(is_blue, user):
if User.objects.filter(username=user.username).exists():
logger.debug("Updating user %s blue status: %s" % (user, is_blue))
authserviceinfo = AuthServicesInfoManager.__get_or_create(user)
authserviceinfo.is_blue = is_blue
authserviceinfo.save(update_fields=['is_blue'])
logger.info("Updated user %s blue status to %s in authservicesinfo model." % (user, is_blue))
@staticmethod
def update_user_discord_info(user_id, user):
if User.objects.filter(username=user.username).exists():
logger.debug("Updating user %s discord info: user_id %s" % (user, user_id))
authserviceinfo = AuthServicesInfoManager.__get_or_create(user)
authserviceinfo.discord_uid = user_id
authserviceinfo.save(update_fields=['discord_uid'])
logger.info("Updated user %s discord info in authservicesinfo model." % user)
else:
logger.error("Failed to update user %s discord info: user does not exist." % user)

View File

@@ -7,26 +7,39 @@ from django.template import RequestContext
from forms import LoginForm
import logging
logger = logging.getLogger(__name__)
def login_user(request):
logger.debug("login_user called by user %s" % request.user)
if request.method == 'POST':
form = LoginForm(request.POST)
logger.debug("Request of type POST, received form, valid: %s" % form.is_valid())
if form.is_valid():
user = authenticate(username=form.cleaned_data['username'], password=form.cleaned_data['password'])
logger.debug("Authentication attempt with supplied credentials. Received user %s" % user)
if user is not None:
if user.is_active:
logger.info("Successful login attempt from user %s" % user)
login(request, user)
return HttpResponseRedirect("/dashboard")
else:
logger.info("Login attempt failed for user %s: user marked inactive." % user)
else:
logger.info("Failed login attempt: provided username %s" % form.cleaned_data['username'])
return render_to_response('public/login.html', {'form': form, 'error': True},
context_instance=RequestContext(request))
else:
logger.debug("Providing new login form.")
form = LoginForm()
return render_to_response('public/login.html', {'form': form}, context_instance=RequestContext(request))
def logout_user(request):
logger.debug("logout_user called by user %s" % request.user)
logout(request)
return HttpResponseRedirect("/")
logger.info("Successful logout for user %s" % request.user)
return HttpResponseRedirect("/")