Added blue support to the auth

This commit is contained in:
Raynaldo Rivera
2014-11-02 21:53:26 -07:00
parent f0e62f7f83
commit 48373c285a
19 changed files with 354 additions and 53 deletions

View File

@@ -2,6 +2,8 @@ import evelink.api
import evelink.char
import evelink.eve
from django.conf import settings
class EveApiManager():
def __init__(self):
@@ -105,7 +107,7 @@ class EveApiManager():
try:
api = evelink.api.API(api_key=(api_id, api_key))
account = evelink.account.Account(api=api)
info = account.status()
info = account.key_info()
return True
except evelink.api.APIError as error:
return False
@@ -122,4 +124,58 @@ class EveApiManager():
except evelink.api.APIError as error:
return False
return False
@staticmethod
def check_if_id_is_corp(corp_id):
try:
api = evelink.api.API()
corp = evelink.corp.Corp(api=api)
corpinfo = corp.corporation_sheet(corp_id=int(corp_id))
results = corpinfo[0]
return True
except evelink.api.APIError as error:
return False
return False
@staticmethod
def get_alliance_standings():
if settings.ALLIANCE_EXEC_CORP_ID != "":
try:
api = evelink.api.API(api_key=(settings.ALLIANCE_EXEC_CORP_ID, settings.ALLIANCE_EXEC_CORP_VCODE))
corp = evelink.corp.Corp(api=api)
corpinfo = corp.contacts()
results = corpinfo[0]
return results
except evelink.api.APIError as error:
pass
return {}
@staticmethod
def check_if_id_is_alliance(alliance_id):
try:
api = evelink.api.API()
eve = evelink.eve.EVE(api=api)
alliance = eve.alliances()
results = alliance[0][int(alliance_id)]
if results:
return True
except evelink.api.APIError as error:
return False
return False
@staticmethod
def check_if_id_is_character(character_id):
try:
api = evelink.api.API()
eve = evelink.eve.EVE(api=api)
results = eve.character_info_from_id(character_id)
if results:
return True
except evelink.api.APIError as error:
return False
return False

View File

@@ -56,6 +56,10 @@ class MumbleManager:
def __generate_username(username, corp_ticker):
return "[" + corp_ticker + "]" + username
@staticmethod
def __generate_username_blue(username, corp_ticker):
return "[BLUE][" + corp_ticker + "]" + username
@staticmethod
def _gen_pwhash(password):
return hashlib.sha1(password).hexdigest()
@@ -133,6 +137,26 @@ class MumbleManager:
return "", ""
@staticmethod
def create_blue_user(corp_ticker, username):
dbcursor = connections['mumble'].cursor()
username_clean = MumbleManager.__generate_username_blue(MumbleManager.__santatize_username(username),
corp_ticker)
password = MumbleManager.__generate_random_pass()
pwhash = MumbleManager._gen_pwhash(password)
try:
dbcursor.execute(MumbleManager.SQL_SELECT_USER_MAX_ID)
user_id = dbcursor.fetchone()[0]
dbcursor.execute(MumbleManager.SQL_CREATE_USER,
[settings.MUMBLE_SERVER_ID, user_id, username_clean, pwhash])
return username_clean, password
except:
return "", ""
@staticmethod
def check_user_exist(username):
dbcursor = connections['mumble'].cursor()

View File

@@ -157,6 +157,20 @@ def activate_mumble(request):
return HttpResponseRedirect("/dashboard")
@login_required
@permission_required('auth.blue_member')
def activate_blue_mumble(request):
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
character = EveManager.get_character_by_id(authinfo.main_char_id)
result = MumbleManager.create_blue_user(character.corporation_ticker, character.character_name)
# if its empty we failed
if result[0] is not "":
AuthServicesInfoManager.update_user_mumble_info(result[0], result[1], request.user)
update_mumble_groups(request.user)
return HttpResponseRedirect("/services/")
return HttpResponseRedirect("/dashboard")
@login_required
@permission_required('auth.alliance_member')
def deactivate_mumble(request):
@@ -169,6 +183,18 @@ def deactivate_mumble(request):
return HttpResponseRedirect("/")
@login_required
@permission_required('auth.blue_member')
def deactivate_blue_mumble(request):
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
result = MumbleManager.delete_user(authinfo.mumble_username)
# if false we failed
if result:
AuthServicesInfoManager.update_user_mumble_info("", "", request.user)
return HttpResponseRedirect("/services/")
return HttpResponseRedirect("/")
@login_required
@permission_required('auth.alliance_member')
def reset_mumble_password(request):
@@ -178,4 +204,16 @@ def reset_mumble_password(request):
if result != "":
AuthServicesInfoManager.update_user_mumble_info(authinfo.mumble_username, result, request.user)
return HttpResponseRedirect("/services/")
return HttpResponseRedirect("/")
return HttpResponseRedirect("/")
@login_required
@permission_required('auth.blue_member')
def reset_mumble_password(request):
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
result = MumbleManager.update_user_password(authinfo.mumble_username)
# if blank we failed
if result != "":
AuthServicesInfoManager.update_user_mumble_info(authinfo.mumble_username, result, request.user)
return HttpResponseRedirect("/services/")
return HttpResponseRedirect("/")