mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 20:40:17 +02:00
commit
a58ee5af3c
@ -95,6 +95,7 @@ Special Permissions In Admin:
|
|||||||
auth | user | blue_member ( Auto Added to people who register has a blue when adding api key)
|
auth | user | blue_member ( Auto Added to people who register has a blue when adding api key)
|
||||||
auth | user | corp_stats (View basic corp auth stats *who is authed etc*)
|
auth | user | corp_stats (View basic corp auth stats *who is authed etc*)
|
||||||
auth | user | timer_management ( Access to create and remove timers)
|
auth | user | timer_management ( Access to create and remove timers)
|
||||||
|
auth | user | srp_management ( Allows for an individual to create and remove srp fleets and fleet data)
|
||||||
|
|
||||||
|
|
||||||
Beta Testers/ Bug Fixers:
|
Beta Testers/ Bug Fixers:
|
||||||
|
@ -41,6 +41,7 @@ INSTALLED_APPS = (
|
|||||||
'django.contrib.sessions',
|
'django.contrib.sessions',
|
||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
'django.contrib.staticfiles',
|
'django.contrib.staticfiles',
|
||||||
|
'django.contrib.humanize',
|
||||||
'django_evolution',
|
'django_evolution',
|
||||||
'djcelery',
|
'djcelery',
|
||||||
'celerytask',
|
'celerytask',
|
||||||
@ -53,6 +54,7 @@ INSTALLED_APPS = (
|
|||||||
'groupmanagement',
|
'groupmanagement',
|
||||||
'hrapplications',
|
'hrapplications',
|
||||||
'timerboard',
|
'timerboard',
|
||||||
|
'srp',
|
||||||
)
|
)
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
|
@ -81,6 +81,9 @@ urlpatterns = patterns('',
|
|||||||
name="auth_hrapplication_reject"),
|
name="auth_hrapplication_reject"),
|
||||||
url(r'hr_application_search/', 'hrapplications.views.hr_application_search',
|
url(r'hr_application_search/', 'hrapplications.views.hr_application_search',
|
||||||
name="auth_hrapplication_search"),
|
name="auth_hrapplication_search"),
|
||||||
|
url(r'hr_mark_in_progress/(\w+)', 'hrapplications.views.hr_application_mark_in_progress',
|
||||||
|
name="auth_hrapplication_mark_in_progress"),
|
||||||
|
|
||||||
|
|
||||||
# Service Urls
|
# Service Urls
|
||||||
url(r'^services/', 'services.views.services_view', name='auth_services'),
|
url(r'^services/', 'services.views.services_view', name='auth_services'),
|
||||||
@ -130,4 +133,25 @@ urlpatterns = patterns('',
|
|||||||
url(r'^timers/$', 'timerboard.views.timer_view', name='auth_timer_view'),
|
url(r'^timers/$', 'timerboard.views.timer_view', name='auth_timer_view'),
|
||||||
url(r'^add_timer/$', 'timerboard.views.add_timer_view', name='auth_add_timer_view'),
|
url(r'^add_timer/$', 'timerboard.views.add_timer_view', name='auth_add_timer_view'),
|
||||||
url(r'^remove_timer/(\w+)', 'timerboard.views.remove_timer', name='auth_remove_timer'),
|
url(r'^remove_timer/(\w+)', 'timerboard.views.remove_timer', name='auth_remove_timer'),
|
||||||
|
|
||||||
|
# SRP URLS
|
||||||
|
url(r'^srp/$', 'srp.views.srp_management', name='auth_srp_management_view'),
|
||||||
|
url(r'^srp_all/$', 'srp.views.srp_management_all', name='auth_srp_management_all_view'),
|
||||||
|
url(r'^srp_fleet_view/(\w+)$', 'srp.views.srp_fleet_view', name='auth_srp_fleet_view'),
|
||||||
|
url(r'^srp_fleet_add_view/$', 'srp.views.srp_fleet_add_view', name='auth_srp_fleet_add_view'),
|
||||||
|
url(r'^srp_fleet_remove/(\w+)$', 'srp.views.srp_fleet_remove', name='auth_srp_flet_remove'),
|
||||||
|
url(r'^srp_fleet_edit/(\w+)$', 'srp.views.srp_fleet_edit_view', name='auth_srp_fleet_edit_view'),
|
||||||
|
url(r'^srp_fleet_mark_completed/(\w+)', 'srp.views.srp_fleet_mark_completed',
|
||||||
|
name='auth_srp_fleet_mark_completed'),
|
||||||
|
url(r'^srp_fleet_mark_uncompleted/(\w+)', 'srp.views.srp_fleet_mark_uncompleted',
|
||||||
|
name='auth_srp_fleet_mark_uncompleted'),
|
||||||
|
url(r'^srp_request/(\w+)', 'srp.views.srp_request_view', name='auth_srp_request_view'),
|
||||||
|
url(r'^srp_request_remove/(\w+)', 'srp.views.srp_request_remove',
|
||||||
|
name="auth_srp_request_remove"),
|
||||||
|
url(r'srp_request_approve/(\w+)', 'srp.views.srp_request_approve',
|
||||||
|
name='auth_srp_request_approve'),
|
||||||
|
url(r'srp_request_reject/(\w+)', 'srp.views.srp_request_reject', name='auth_srp_request_reject'),
|
||||||
|
url(r'srp_request_amount_update/(\w+)', 'srp.views.srp_request_update_amount_view',
|
||||||
|
name="auth_srp_request_update_amount_view")
|
||||||
|
|
||||||
)
|
)
|
@ -4,7 +4,9 @@ from django.contrib.auth.models import User
|
|||||||
|
|
||||||
class SyncGroupCache(models.Model):
|
class SyncGroupCache(models.Model):
|
||||||
groupname = models.CharField(max_length=254)
|
groupname = models.CharField(max_length=254)
|
||||||
|
servicename = models.CharField(max_length=254, default="")
|
||||||
|
|
||||||
user = models.ForeignKey(User)
|
user = models.ForeignKey(User)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.user.username + ' - ' + self.groupname + ' - SyncGroupCache'
|
return self.user.username + ' - ' + self.groupname + ' - ' + self.servicename + ' - SyncGroupCache'
|
||||||
|
@ -83,6 +83,21 @@ def update_teamspeak3_groups(user):
|
|||||||
Teamspeak3Manager.update_groups(authserviceinfo.teamspeak3_uid, groups)
|
Teamspeak3Manager.update_groups(authserviceinfo.teamspeak3_uid, groups)
|
||||||
|
|
||||||
|
|
||||||
|
def create_syncgroup_for_user(user, groupname, servicename):
|
||||||
|
synccache = SyncGroupCache()
|
||||||
|
synccache.groupname = groupname
|
||||||
|
synccache.user = user
|
||||||
|
synccache.servicename = servicename
|
||||||
|
synccache.save()
|
||||||
|
|
||||||
|
|
||||||
|
def remove_all_syncgroups_for_service(user, servicename):
|
||||||
|
syncgroups = SyncGroupCache.objects.filter(user=user)
|
||||||
|
for syncgroup in syncgroups:
|
||||||
|
if syncgroup.servicename == servicename:
|
||||||
|
syncgroup.delete()
|
||||||
|
|
||||||
|
|
||||||
def add_to_databases(user, groups, syncgroups):
|
def add_to_databases(user, groups, syncgroups):
|
||||||
authserviceinfo = None
|
authserviceinfo = None
|
||||||
try:
|
try:
|
||||||
@ -93,27 +108,28 @@ def add_to_databases(user, groups, syncgroups):
|
|||||||
if authserviceinfo:
|
if authserviceinfo:
|
||||||
authserviceinfo = AuthServicesInfo.objects.get(user=user)
|
authserviceinfo = AuthServicesInfo.objects.get(user=user)
|
||||||
|
|
||||||
update = False
|
|
||||||
for group in groups:
|
for group in groups:
|
||||||
syncgroup = syncgroups.filter(groupname=group.name)
|
|
||||||
if not syncgroup:
|
|
||||||
synccache = SyncGroupCache()
|
|
||||||
synccache.groupname = group.name
|
|
||||||
synccache.user = user
|
|
||||||
synccache.save()
|
|
||||||
update = True
|
|
||||||
|
|
||||||
if update:
|
|
||||||
if authserviceinfo.jabber_username and authserviceinfo.jabber_username != "":
|
if authserviceinfo.jabber_username and authserviceinfo.jabber_username != "":
|
||||||
update_jabber_groups(user)
|
if syncgroups.filter(groupname=group.name).filter(servicename="openfire").exists() is not True:
|
||||||
|
create_syncgroup_for_user(user, group.name, "openfire")
|
||||||
|
update_jabber_groups(user)
|
||||||
if authserviceinfo.mumble_username and authserviceinfo.mumble_username != "":
|
if authserviceinfo.mumble_username and authserviceinfo.mumble_username != "":
|
||||||
update_mumble_groups(user)
|
if syncgroups.filter(groupname=group.name).filter(servicename="mumble").exists() is not True:
|
||||||
|
create_syncgroup_for_user(user, group.name, "mumble")
|
||||||
|
update_mumble_groups(user)
|
||||||
if authserviceinfo.forum_username and authserviceinfo.forum_username != "":
|
if authserviceinfo.forum_username and authserviceinfo.forum_username != "":
|
||||||
update_forum_groups(user)
|
if syncgroups.filter(groupname=group.name).filter(servicename="phpbb3").exists() is not True:
|
||||||
|
create_syncgroup_for_user(user, group.name, "phpbb3")
|
||||||
|
update_forum_groups(user)
|
||||||
if authserviceinfo.ipboard_username and authserviceinfo.ipboard_username != "":
|
if authserviceinfo.ipboard_username and authserviceinfo.ipboard_username != "":
|
||||||
update_ipboard_groups(user)
|
if syncgroups.filter(groupname=group.name).filter(servicename="ipboard").exists() is not True:
|
||||||
|
create_syncgroup_for_user(user, group.name, "ipboard")
|
||||||
|
update_ipboard_groups(user)
|
||||||
if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "":
|
if authserviceinfo.teamspeak3_uid and authserviceinfo.teamspeak3_uid != "":
|
||||||
update_teamspeak3_groups(user)
|
if syncgroups.filter(groupname=group.name).filter(servicename="teamspeak3").exists() is not True:
|
||||||
|
create_syncgroup_for_user(user, group.name, "teamspeak3")
|
||||||
|
update_teamspeak3_groups(user)
|
||||||
|
|
||||||
|
|
||||||
def remove_from_databases(user, groups, syncgroups):
|
def remove_from_databases(user, groups, syncgroups):
|
||||||
@ -168,8 +184,7 @@ def run_api_refresh():
|
|||||||
if api_key_pairs:
|
if api_key_pairs:
|
||||||
valid_key = False
|
valid_key = False
|
||||||
authserviceinfo = AuthServicesInfo.objects.get(user=user)
|
authserviceinfo = AuthServicesInfo.objects.get(user=user)
|
||||||
# We do a check on the authservice info to insure that we shoud run the check
|
|
||||||
# No point in running the check on people who arn't on services
|
|
||||||
print 'Running update on user: ' + user.username
|
print 'Running update on user: ' + user.username
|
||||||
if authserviceinfo.main_char_id:
|
if authserviceinfo.main_char_id:
|
||||||
if authserviceinfo.main_char_id != "":
|
if authserviceinfo.main_char_id != "":
|
||||||
@ -192,8 +207,8 @@ def run_api_refresh():
|
|||||||
main_alliance_id = EveManager.get_charater_alliance_id_by_id(authserviceinfo.main_char_id)
|
main_alliance_id = EveManager.get_charater_alliance_id_by_id(authserviceinfo.main_char_id)
|
||||||
if main_alliance_id == settings.ALLIANCE_ID:
|
if main_alliance_id == settings.ALLIANCE_ID:
|
||||||
pass
|
pass
|
||||||
elif corp != None:
|
elif corp is not None:
|
||||||
if not corp.is_blue:
|
if corp.is_blue is not True:
|
||||||
deactivate_services(user)
|
deactivate_services(user)
|
||||||
else:
|
else:
|
||||||
deactivate_services(user)
|
deactivate_services(user)
|
||||||
@ -277,6 +292,15 @@ def run_alliance_corp_update():
|
|||||||
all_alliance_api_info['executor_id'],
|
all_alliance_api_info['executor_id'],
|
||||||
all_alliance_api_info['member_count'], False)
|
all_alliance_api_info['member_count'], False)
|
||||||
|
|
||||||
|
else:
|
||||||
|
EveManager.update_alliance_info(all_alliance_api_info['id'],
|
||||||
|
all_alliance_api_info['executor_id'],
|
||||||
|
all_alliance_api_info['member_count'], False)
|
||||||
|
else:
|
||||||
|
EveManager.update_alliance_info(all_alliance_api_info['id'],
|
||||||
|
all_alliance_api_info['executor_id'],
|
||||||
|
all_alliance_api_info['member_count'], False)
|
||||||
|
|
||||||
# Update corp infos
|
# Update corp infos
|
||||||
for all_corp_info in EveManager.get_all_corporation_info():
|
for all_corp_info in EveManager.get_all_corporation_info():
|
||||||
alliance = None
|
alliance = None
|
||||||
@ -325,7 +349,7 @@ def run_alliance_corp_update():
|
|||||||
# Check the alliances
|
# Check the alliances
|
||||||
for all_alliance_info in EveManager.get_all_alliance_info():
|
for all_alliance_info in EveManager.get_all_alliance_info():
|
||||||
if all_alliance_info.alliance_id != settings.ALLIANCE_ID:
|
if all_alliance_info.alliance_id != settings.ALLIANCE_ID:
|
||||||
if not all_alliance_info.is_blue:
|
if all_alliance_info.is_blue is not True:
|
||||||
all_alliance_info.delete()
|
all_alliance_info.delete()
|
||||||
|
|
||||||
|
|
||||||
|
5
eveonline/views.py
Normal file → Executable file
5
eveonline/views.py
Normal file → Executable file
@ -18,6 +18,7 @@ from util.common_task import deactivate_services
|
|||||||
from util.common_task import generate_corp_group_name
|
from util.common_task import generate_corp_group_name
|
||||||
from eveonline.models import EveCorporationInfo
|
from eveonline.models import EveCorporationInfo
|
||||||
from eveonline.models import EveCharacter
|
from eveonline.models import EveCharacter
|
||||||
|
from eveonline.models import EveApiKeyPair
|
||||||
from authentication.models import AuthServicesInfo
|
from authentication.models import AuthServicesInfo
|
||||||
|
|
||||||
|
|
||||||
@ -140,14 +141,14 @@ def corp_stats_view(request):
|
|||||||
main_char = EveCharacter.objects.get(character_id=auth_info.main_char_id)
|
main_char = EveCharacter.objects.get(character_id=auth_info.main_char_id)
|
||||||
corp = EveCorporationInfo.objects.get(corporation_id=main_char.corporation_id)
|
corp = EveCorporationInfo.objects.get(corporation_id=main_char.corporation_id)
|
||||||
current_count = 0
|
current_count = 0
|
||||||
allcharacters = []
|
allcharacters = {}
|
||||||
all_characters = EveCharacter.objects.all()
|
all_characters = EveCharacter.objects.all()
|
||||||
for char in all_characters:
|
for char in all_characters:
|
||||||
if char:
|
if char:
|
||||||
try:
|
try:
|
||||||
if char.corporation_id == corp.corporation_id:
|
if char.corporation_id == corp.corporation_id:
|
||||||
current_count = current_count + 1
|
current_count = current_count + 1
|
||||||
allcharacters.append(char)
|
allcharacters[char.character_name] = EveApiKeyPair.objects.get(api_id=char.api_id)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -19,6 +19,8 @@ class HRApplication(models.Model):
|
|||||||
approved_denied = models.NullBooleanField(blank=True, null=True)
|
approved_denied = models.NullBooleanField(blank=True, null=True)
|
||||||
reviewer_user = models.ForeignKey(User, blank=True, null=True, related_name="review_user")
|
reviewer_user = models.ForeignKey(User, blank=True, null=True, related_name="review_user")
|
||||||
reviewer_character = models.ForeignKey(EveCharacter, blank=True, null=True)
|
reviewer_character = models.ForeignKey(EveCharacter, blank=True, null=True)
|
||||||
|
reviewer_inprogress_character = models.ForeignKey(EveCharacter, blank=True, null=True,
|
||||||
|
related_name="inprogress_character")
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.character_name + " - Application"
|
return self.character_name + " - Application"
|
||||||
|
@ -177,4 +177,16 @@ def hr_application_search(request):
|
|||||||
return render_to_response('registered/hrapplicationsearchview.html',
|
return render_to_response('registered/hrapplicationsearchview.html',
|
||||||
context, context_instance=RequestContext(request))
|
context, context_instance=RequestContext(request))
|
||||||
else:
|
else:
|
||||||
return HttpResponseRedirect("/hr_application_management/")
|
return HttpResponseRedirect("/hr_application_management/")
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.human_resources')
|
||||||
|
def hr_application_mark_in_progress(request, app_id):
|
||||||
|
if HRApplication.objects.filter(id=app_id).exists():
|
||||||
|
auth_info = AuthServicesInfo.objects.get(user=request.user)
|
||||||
|
application = HRApplication.objects.get(id=app_id)
|
||||||
|
application.reviewer_inprogress_character = EveCharacter.objects.get(character_id=auth_info.main_char_id)
|
||||||
|
application.save()
|
||||||
|
|
||||||
|
return HttpResponseRedirect("/hr_application_view/" + str(app_id))
|
||||||
|
@ -7,7 +7,6 @@ from authentication.managers import AuthServicesInfoManager
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
def index_view(request):
|
def index_view(request):
|
||||||
return render_to_response('public/index.html', None, context_instance=RequestContext(request))
|
return render_to_response('public/index.html', None, context_instance=RequestContext(request))
|
||||||
|
@ -6,7 +6,6 @@ from django.conf import settings
|
|||||||
|
|
||||||
|
|
||||||
class IPBoardManager:
|
class IPBoardManager:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -23,15 +22,18 @@ class IPBoardManager:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def exec_xmlrpc(func, **kwargs):
|
def exec_xmlrpc(func, **kwargs):
|
||||||
""" Send a XMLRPC request """
|
""" Send a XMLRPC request """
|
||||||
|
try:
|
||||||
|
server = xmlrpclib.Server(settings.IPBOARD_ENDPOINT, verbose=False)
|
||||||
|
params = {}
|
||||||
|
for i in kwargs:
|
||||||
|
params[i] = kwargs[i]
|
||||||
|
params['api_key'] = settings.IPBOARD_APIKEY
|
||||||
|
params['api_module'] = settings.IPBOARD_APIMODULE
|
||||||
|
print params
|
||||||
|
|
||||||
server = xmlrpclib.Server(settings.IPBOARD_ENDPOINT, verbose=False)
|
return getattr(server, func)(params)
|
||||||
params = {}
|
except:
|
||||||
for i in kwargs:
|
return {}
|
||||||
params[i] = kwargs[i]
|
|
||||||
params['api_key'] = settings.IPBOARD_APIKEY
|
|
||||||
params['api_module'] = settings.IPBOARD_APIMODULE
|
|
||||||
print params
|
|
||||||
return getattr(server, func)(params)
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def add_user(username, email):
|
def add_user(username, email):
|
||||||
@ -39,7 +41,8 @@ class IPBoardManager:
|
|||||||
sanatized = str(IPBoardManager.__santatize_username(username))
|
sanatized = str(IPBoardManager.__santatize_username(username))
|
||||||
plain_password = IPBoardManager.__generate_random_pass()
|
plain_password = IPBoardManager.__generate_random_pass()
|
||||||
password = md5(plain_password).hexdigest()
|
password = md5(plain_password).hexdigest()
|
||||||
ret = IPBoardManager.exec_xmlrpc('createUser', username=sanatized, email=str(email), display_name=sanatized, md5_passwordHash=password)
|
ret = IPBoardManager.exec_xmlrpc('createUser', username=sanatized, email=str(email), display_name=sanatized,
|
||||||
|
md5_passwordHash=password)
|
||||||
return sanatized, plain_password
|
return sanatized, plain_password
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -218,7 +218,13 @@ class MumbleManager:
|
|||||||
for g in addgroups:
|
for g in addgroups:
|
||||||
if not g in mumble_groups:
|
if not g in mumble_groups:
|
||||||
mumble_groups[g] = MumbleManager._add_group(g)
|
mumble_groups[g] = MumbleManager._add_group(g)
|
||||||
MumbleManager._add_user_to_group(userid, mumble_groups[g])
|
try:
|
||||||
|
MumbleManager._add_user_to_group(userid, mumble_groups[g])
|
||||||
|
except:
|
||||||
|
print "Error occurred while adding a mumble to a group"
|
||||||
|
|
||||||
for g in remgroups:
|
for g in remgroups:
|
||||||
MumbleManager._del_user_from_group(userid, mumble_groups[g])
|
try:
|
||||||
|
MumbleManager._del_user_from_group(userid, mumble_groups[g])
|
||||||
|
except:
|
||||||
|
print "Error occurred while removing a mumble user from group"
|
||||||
|
@ -62,7 +62,10 @@ class Phpbb3Manager:
|
|||||||
cursor = connections['phpbb3'].cursor()
|
cursor = connections['phpbb3'].cursor()
|
||||||
cursor.execute(Phpbb3Manager.SQL_USER_ID_FROM_USERNAME, [username])
|
cursor.execute(Phpbb3Manager.SQL_USER_ID_FROM_USERNAME, [username])
|
||||||
row = cursor.fetchone()
|
row = cursor.fetchone()
|
||||||
return row[0]
|
if row is not None:
|
||||||
|
return row[0]
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __get_all_groups():
|
def __get_all_groups():
|
||||||
@ -95,13 +98,19 @@ class Phpbb3Manager:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __add_user_to_group(userid, groupid):
|
def __add_user_to_group(userid, groupid):
|
||||||
cursor = connections['phpbb3'].cursor()
|
try:
|
||||||
cursor.execute(Phpbb3Manager.SQL_ADD_USER_GROUP, [groupid, userid, 0])
|
cursor = connections['phpbb3'].cursor()
|
||||||
|
cursor.execute(Phpbb3Manager.SQL_ADD_USER_GROUP, [groupid, userid, 0])
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __remove_user_from_group(userid, groupid):
|
def __remove_user_from_group(userid, groupid):
|
||||||
cursor = connections['phpbb3'].cursor()
|
cursor = connections['phpbb3'].cursor()
|
||||||
cursor.execute(Phpbb3Manager.SQL_REMOVE_USER_GROUP, [userid, groupid])
|
try:
|
||||||
|
cursor.execute(Phpbb3Manager.SQL_REMOVE_USER_GROUP, [userid, groupid])
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def add_user(username, email, groups):
|
def add_user(username, email, groups):
|
||||||
@ -118,8 +127,8 @@ class Phpbb3Manager:
|
|||||||
try:
|
try:
|
||||||
|
|
||||||
cursor.execute(Phpbb3Manager.SQL_ADD_USER, [username_clean, username_clean, pwhash,
|
cursor.execute(Phpbb3Manager.SQL_ADD_USER, [username_clean, username_clean, pwhash,
|
||||||
email, 2, Phpbb3Manager.__get_current_utc_date(),
|
email, 2, Phpbb3Manager.__get_current_utc_date(),
|
||||||
"", ""])
|
"", ""])
|
||||||
Phpbb3Manager.update_groups(username_clean, groups)
|
Phpbb3Manager.update_groups(username_clean, groups)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
@ -152,32 +161,36 @@ class Phpbb3Manager:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def update_groups(username, groups):
|
def update_groups(username, groups):
|
||||||
userid = Phpbb3Manager.__get_user_id(username)
|
userid = Phpbb3Manager.__get_user_id(username)
|
||||||
forum_groups = Phpbb3Manager.__get_all_groups()
|
if userid is not None:
|
||||||
user_groups = set(Phpbb3Manager.__get_user_groups(userid))
|
forum_groups = Phpbb3Manager.__get_all_groups()
|
||||||
act_groups = set([g.replace(' ', '-') for g in groups])
|
user_groups = set(Phpbb3Manager.__get_user_groups(userid))
|
||||||
addgroups = act_groups - user_groups
|
act_groups = set([g.replace(' ', '-') for g in groups])
|
||||||
remgroups = user_groups - act_groups
|
addgroups = act_groups - user_groups
|
||||||
print username
|
remgroups = user_groups - act_groups
|
||||||
print addgroups
|
print username
|
||||||
print remgroups
|
print addgroups
|
||||||
for g in addgroups:
|
print remgroups
|
||||||
if not g in forum_groups:
|
for g in addgroups:
|
||||||
forum_groups[g] = Phpbb3Manager.__create_group(g)
|
if not g in forum_groups:
|
||||||
Phpbb3Manager.__add_user_to_group(userid, forum_groups[g])
|
forum_groups[g] = Phpbb3Manager.__create_group(g)
|
||||||
|
Phpbb3Manager.__add_user_to_group(userid, forum_groups[g])
|
||||||
|
|
||||||
for g in remgroups:
|
for g in remgroups:
|
||||||
Phpbb3Manager.__remove_user_from_group(userid, forum_groups[g])
|
Phpbb3Manager.__remove_user_from_group(userid, forum_groups[g])
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def remove_group(username, group):
|
def remove_group(username, group):
|
||||||
cursor = connections['phpbb3'].cursor()
|
cursor = connections['phpbb3'].cursor()
|
||||||
userid = Phpbb3Manager.__get_user_id(username)
|
userid = Phpbb3Manager.__get_user_id(username)
|
||||||
groupid = Phpbb3Manager.__get_group_id(group)
|
if userid is not None:
|
||||||
|
groupid = Phpbb3Manager.__get_group_id(group)
|
||||||
if userid:
|
|
||||||
if groupid:
|
|
||||||
cursor.execute(Phpbb3Manager.SQL_REMOVE_USER_GROUP, [userid, groupid])
|
|
||||||
|
|
||||||
|
if userid:
|
||||||
|
if groupid:
|
||||||
|
try:
|
||||||
|
cursor.execute(Phpbb3Manager.SQL_REMOVE_USER_GROUP, [userid, groupid])
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def check_user(username):
|
def check_user(username):
|
||||||
|
@ -18,7 +18,7 @@ class Teamspeak3Manager:
|
|||||||
def __santatize_username(username):
|
def __santatize_username(username):
|
||||||
sanatized = username.replace(" ", "_")
|
sanatized = username.replace(" ", "_")
|
||||||
sanatized = sanatized.replace("'", "")
|
sanatized = sanatized.replace("'", "")
|
||||||
return sanatized.lower()
|
return sanatized
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def __generate_username(username, corp_ticker):
|
def __generate_username(username, corp_ticker):
|
||||||
@ -39,6 +39,7 @@ class Teamspeak3Manager:
|
|||||||
def _group_id_by_name(groupname):
|
def _group_id_by_name(groupname):
|
||||||
server = Teamspeak3Manager.__get_created_server()
|
server = Teamspeak3Manager.__get_created_server()
|
||||||
group_cache = server.send_command('servergrouplist')
|
group_cache = server.send_command('servergrouplist')
|
||||||
|
|
||||||
for group in group_cache:
|
for group in group_cache:
|
||||||
if group['keys']['name'] == groupname:
|
if group['keys']['name'] == groupname:
|
||||||
return group['keys']['sgid']
|
return group['keys']['sgid']
|
||||||
@ -206,8 +207,10 @@ class Teamspeak3Manager:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def update_groups(uid, l_groups):
|
def update_groups(uid, l_groups):
|
||||||
|
print uid
|
||||||
|
print l_groups
|
||||||
userid = Teamspeak3Manager._get_userid(uid)
|
userid = Teamspeak3Manager._get_userid(uid)
|
||||||
if userid:
|
if userid is not None:
|
||||||
server_groups = Teamspeak3Manager._group_list()
|
server_groups = Teamspeak3Manager._group_list()
|
||||||
user_groups = set(Teamspeak3Manager._user_group_list(userid))
|
user_groups = set(Teamspeak3Manager._user_group_list(userid))
|
||||||
groups = []
|
groups = []
|
||||||
|
@ -139,7 +139,7 @@ class TS3Proto():
|
|||||||
v = [v[0], '='.join(v[1:])]
|
v = [v[0], '='.join(v[1:])]
|
||||||
key, value = v
|
key, value = v
|
||||||
keys[key] = self._unescape_str(value)
|
keys[key] = self._unescape_str(value)
|
||||||
elif v[0][0] == '-':
|
elif v[0][0] and v[0][0] == '-':
|
||||||
# Option
|
# Option
|
||||||
opts.append(v[0][1:])
|
opts.append(v[0][1:])
|
||||||
else:
|
else:
|
||||||
|
@ -12,6 +12,7 @@ from managers.ipboard_manager import IPBoardManager
|
|||||||
from managers.teamspeak3_manager import Teamspeak3Manager
|
from managers.teamspeak3_manager import Teamspeak3Manager
|
||||||
from authentication.managers import AuthServicesInfoManager
|
from authentication.managers import AuthServicesInfoManager
|
||||||
from eveonline.managers import EveManager
|
from eveonline.managers import EveManager
|
||||||
|
from celerytask.tasks import remove_all_syncgroups_for_service
|
||||||
from celerytask.tasks import update_jabber_groups
|
from celerytask.tasks import update_jabber_groups
|
||||||
from celerytask.tasks import update_mumble_groups
|
from celerytask.tasks import update_mumble_groups
|
||||||
from celerytask.tasks import update_forum_groups
|
from celerytask.tasks import update_forum_groups
|
||||||
@ -96,6 +97,7 @@ def activate_forum(request):
|
|||||||
def deactivate_forum(request):
|
def deactivate_forum(request):
|
||||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||||
result = Phpbb3Manager.disable_user(authinfo.forum_username)
|
result = Phpbb3Manager.disable_user(authinfo.forum_username)
|
||||||
|
remove_all_syncgroups_for_service(request.user, "phpbb")
|
||||||
# false we failed
|
# false we failed
|
||||||
if result:
|
if result:
|
||||||
AuthServicesInfoManager.update_user_forum_info("", "", request.user)
|
AuthServicesInfoManager.update_user_forum_info("", "", request.user)
|
||||||
@ -134,6 +136,7 @@ def activate_ipboard_forum(request):
|
|||||||
def deactivate_ipboard_forum(request):
|
def deactivate_ipboard_forum(request):
|
||||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||||
result = IPBoardManager.disable_user(authinfo.ipboard_username)
|
result = IPBoardManager.disable_user(authinfo.ipboard_username)
|
||||||
|
remove_all_syncgroups_for_service(request.user, "ipboard")
|
||||||
# false we failed
|
# false we failed
|
||||||
if result:
|
if result:
|
||||||
AuthServicesInfoManager.update_user_ipboard_info("", "", request.user)
|
AuthServicesInfoManager.update_user_ipboard_info("", "", request.user)
|
||||||
@ -171,6 +174,7 @@ def activate_jabber(request):
|
|||||||
def deactivate_jabber(request):
|
def deactivate_jabber(request):
|
||||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||||
result = OpenfireManager.delete_user(authinfo.jabber_username)
|
result = OpenfireManager.delete_user(authinfo.jabber_username)
|
||||||
|
remove_all_syncgroups_for_service(request.user, "openfire")
|
||||||
# If our username is blank means we failed
|
# If our username is blank means we failed
|
||||||
if result:
|
if result:
|
||||||
AuthServicesInfoManager.update_user_jabber_info("", "", request.user)
|
AuthServicesInfoManager.update_user_jabber_info("", "", request.user)
|
||||||
@ -212,6 +216,7 @@ def activate_mumble(request):
|
|||||||
def deactivate_mumble(request):
|
def deactivate_mumble(request):
|
||||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||||
result = MumbleManager.delete_user(authinfo.mumble_username)
|
result = MumbleManager.delete_user(authinfo.mumble_username)
|
||||||
|
remove_all_syncgroups_for_service(request.user, "mumble")
|
||||||
# if false we failed
|
# if false we failed
|
||||||
if result:
|
if result:
|
||||||
AuthServicesInfoManager.update_user_mumble_info("", "", request.user)
|
AuthServicesInfoManager.update_user_mumble_info("", "", request.user)
|
||||||
@ -224,6 +229,7 @@ def deactivate_mumble(request):
|
|||||||
def reset_mumble_password(request):
|
def reset_mumble_password(request):
|
||||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||||
result = MumbleManager.update_user_password(authinfo.mumble_username)
|
result = MumbleManager.update_user_password(authinfo.mumble_username)
|
||||||
|
|
||||||
# if blank we failed
|
# if blank we failed
|
||||||
if result != "":
|
if result != "":
|
||||||
AuthServicesInfoManager.update_user_mumble_info(authinfo.mumble_username, result, request.user)
|
AuthServicesInfoManager.update_user_mumble_info(authinfo.mumble_username, result, request.user)
|
||||||
@ -254,9 +260,13 @@ def activate_teamspeak3(request):
|
|||||||
def deactivate_teamspeak3(request):
|
def deactivate_teamspeak3(request):
|
||||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||||
result = Teamspeak3Manager.delete_user(authinfo.teamspeak3_uid)
|
result = Teamspeak3Manager.delete_user(authinfo.teamspeak3_uid)
|
||||||
|
|
||||||
|
remove_all_syncgroups_for_service(request.user, "teamspeak3")
|
||||||
|
|
||||||
# if false we failed
|
# if false we failed
|
||||||
if result:
|
if result:
|
||||||
AuthServicesInfoManager.update_user_teamspeak3_info("", "", request.user)
|
AuthServicesInfoManager.update_user_teamspeak3_info("", "", request.user)
|
||||||
|
|
||||||
return HttpResponseRedirect("/services/")
|
return HttpResponseRedirect("/services/")
|
||||||
return HttpResponseRedirect("/")
|
return HttpResponseRedirect("/")
|
||||||
|
|
||||||
@ -269,6 +279,8 @@ def reset_teamspeak3_perm(request):
|
|||||||
|
|
||||||
Teamspeak3Manager.delete_user(authinfo.teamspeak3_uid)
|
Teamspeak3Manager.delete_user(authinfo.teamspeak3_uid)
|
||||||
|
|
||||||
|
remove_all_syncgroups_for_service(request.user, "teamspeak3")
|
||||||
|
|
||||||
if check_if_user_has_permission(request.user, "blue_member"):
|
if check_if_user_has_permission(request.user, "blue_member"):
|
||||||
result = Teamspeak3Manager.generate_new_blue_permissionkey(authinfo.teamspeak3_uid, character.character_name,
|
result = Teamspeak3Manager.generate_new_blue_permissionkey(authinfo.teamspeak3_uid, character.character_name,
|
||||||
character.corporation_ticker)
|
character.corporation_ticker)
|
||||||
@ -279,5 +291,6 @@ def reset_teamspeak3_perm(request):
|
|||||||
# if blank we failed
|
# if blank we failed
|
||||||
if result != "":
|
if result != "":
|
||||||
AuthServicesInfoManager.update_user_teamspeak3_info(result[0], result[1], request.user)
|
AuthServicesInfoManager.update_user_teamspeak3_info(result[0], result[1], request.user)
|
||||||
|
update_teamspeak3_groups(request.user)
|
||||||
return HttpResponseRedirect("/services/")
|
return HttpResponseRedirect("/services/")
|
||||||
return HttpResponseRedirect("/")
|
return HttpResponseRedirect("/")
|
0
srp/__init__.py
Executable file
0
srp/__init__.py
Executable file
8
srp/admin.py
Executable file
8
srp/admin.py
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
from models import SrpFleetMain
|
||||||
|
from models import SrpUserRequest
|
||||||
|
|
||||||
|
# Register your models here.
|
||||||
|
admin.site.register(SrpFleetMain)
|
||||||
|
admin.site.register(SrpUserRequest)
|
20
srp/form.py
Executable file
20
srp/form.py
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
from django import forms
|
||||||
|
|
||||||
|
|
||||||
|
class SrpFleetMainForm(forms.Form):
|
||||||
|
fleet_name = forms.CharField(required=True, label="Fleet Name")
|
||||||
|
fleet_time = forms.DateTimeField(required=True, label="Fleet Time")
|
||||||
|
fleet_doctrine = forms.CharField(required=True, label="Fleet Doctrine")
|
||||||
|
|
||||||
|
|
||||||
|
class SrpFleetUserRequestForm(forms.Form):
|
||||||
|
killboard_link = forms.CharField(required=True, label="Killboard Link")
|
||||||
|
additional_info = forms.CharField(required=False, label="Additional Info")
|
||||||
|
|
||||||
|
|
||||||
|
class SrpFleetUpdateCostForm(forms.Form):
|
||||||
|
srp_total_amount = forms.IntegerField(required=True, label="Total SRP Amount")
|
||||||
|
|
||||||
|
|
||||||
|
class SrpFleetMainUpdateForm(forms.Form):
|
||||||
|
fleet_aar_link = forms.CharField(required=True, label="After Action Report Link")
|
29
srp/models.py
Executable file
29
srp/models.py
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
from django.db import models
|
||||||
|
|
||||||
|
from eveonline.models import EveCharacter
|
||||||
|
|
||||||
|
|
||||||
|
class SrpFleetMain(models.Model):
|
||||||
|
fleet_name = models.CharField(max_length=254, default="")
|
||||||
|
fleet_doctrine = models.CharField(max_length=254, default="")
|
||||||
|
fleet_time = models.DateTimeField()
|
||||||
|
fleet_srp_code = models.CharField(max_length=254, default="", unique=True)
|
||||||
|
fleet_srp_status = models.CharField(max_length=254, default="")
|
||||||
|
fleet_commander = models.ForeignKey(EveCharacter)
|
||||||
|
fleet_srp_aar_link = models.CharField(max_length=254, default="")
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.fleet_name + " - SrpFleetMain"
|
||||||
|
|
||||||
|
|
||||||
|
class SrpUserRequest(models.Model):
|
||||||
|
killboard_link = models.CharField(max_length=254, default="")
|
||||||
|
after_action_report_link = models.CharField(max_length=254, default="")
|
||||||
|
additional_info = models.CharField(max_length=254, default="")
|
||||||
|
srp_status = models.CharField(max_length=254, default="")
|
||||||
|
srp_total_amount = models.BigIntegerField(default=0)
|
||||||
|
character = models.ForeignKey(EveCharacter)
|
||||||
|
srp_fleet_main = models.ForeignKey(SrpFleetMain)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return self.character.character_name + " - SrpUserRequest"
|
1
srp/tests.py
Executable file
1
srp/tests.py
Executable file
@ -0,0 +1 @@
|
|||||||
|
# Create your tests here.
|
276
srp/views.py
Executable file
276
srp/views.py
Executable file
@ -0,0 +1,276 @@
|
|||||||
|
from django.template import RequestContext
|
||||||
|
from django.http import HttpResponseRedirect
|
||||||
|
from django.shortcuts import render_to_response
|
||||||
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from django.contrib.auth.decorators import permission_required
|
||||||
|
from django.contrib.auth.decorators import user_passes_test
|
||||||
|
|
||||||
|
from util import random_string
|
||||||
|
from eveonline.managers import EveManager
|
||||||
|
from authentication.managers import AuthServicesInfoManager
|
||||||
|
from util import check_if_user_has_permission
|
||||||
|
from models import SrpFleetMain
|
||||||
|
from models import SrpUserRequest
|
||||||
|
from form import SrpFleetMainForm
|
||||||
|
from form import SrpFleetUserRequestForm
|
||||||
|
from form import SrpFleetUpdateCostForm
|
||||||
|
from form import SrpFleetMainUpdateForm
|
||||||
|
|
||||||
|
|
||||||
|
def srp_util_test(user):
|
||||||
|
return check_if_user_has_permission(user, 'alliance_member') or check_if_user_has_permission(user, 'blue_member')
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@user_passes_test(srp_util_test)
|
||||||
|
def srp_management(request):
|
||||||
|
totalcost = 0
|
||||||
|
runningcost = 0
|
||||||
|
price_pair = {}
|
||||||
|
for fleet_main in SrpFleetMain.objects.filter(fleet_srp_status="").iterator():
|
||||||
|
for fleet_data in SrpUserRequest.objects.filter(srp_fleet_main=fleet_main).iterator():
|
||||||
|
totalcost = totalcost + fleet_data.srp_total_amount
|
||||||
|
runningcost = runningcost + fleet_data.srp_total_amount
|
||||||
|
price_pair[fleet_main.id] = runningcost
|
||||||
|
runningcost = 0
|
||||||
|
|
||||||
|
context = {"srpfleets": SrpFleetMain.objects.filter(fleet_srp_status=""), "totalcost": totalcost,
|
||||||
|
"price_pair": price_pair}
|
||||||
|
return render_to_response('registered/srpmanagement.html', context, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@user_passes_test(srp_util_test)
|
||||||
|
def srp_management_all(request):
|
||||||
|
totalcost = 0
|
||||||
|
runningcost = 0
|
||||||
|
price_pair = {}
|
||||||
|
for fleet_main in SrpFleetMain.objects.all().iterator():
|
||||||
|
for fleet_data in SrpUserRequest.objects.filter(srp_fleet_main=fleet_main).iterator():
|
||||||
|
totalcost = totalcost + fleet_data.srp_total_amount
|
||||||
|
runningcost = runningcost + fleet_data.srp_total_amount
|
||||||
|
price_pair[fleet_main.id] = runningcost
|
||||||
|
runningcost = 0
|
||||||
|
|
||||||
|
context = {"srpfleets": SrpFleetMain.objects.all(), "totalcost": totalcost, "price_pair": price_pair}
|
||||||
|
return render_to_response('registered/srpmanagement.html', context, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@user_passes_test(srp_util_test)
|
||||||
|
def srp_fleet_view(request, fleet_id):
|
||||||
|
if SrpFleetMain.objects.filter(id=fleet_id).exists():
|
||||||
|
fleet_main = SrpFleetMain.objects.get(id=fleet_id)
|
||||||
|
totalcost = 0
|
||||||
|
for fleet_data in SrpUserRequest.objects.filter(srp_fleet_main=fleet_main):
|
||||||
|
totalcost = totalcost + fleet_data.srp_total_amount
|
||||||
|
|
||||||
|
context = {"fleet_id": fleet_id, "fleet_status": fleet_main.fleet_srp_status,
|
||||||
|
"srpfleetrequests": SrpUserRequest.objects.filter(srp_fleet_main=fleet_main),
|
||||||
|
"totalcost": totalcost}
|
||||||
|
|
||||||
|
return render_to_response('registered/srpfleetdata.html', context, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
else:
|
||||||
|
return HttpResponseRedirect("/srp")
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.srp_management')
|
||||||
|
def srp_fleet_add_view(request):
|
||||||
|
completed = False
|
||||||
|
completed_srp_code = ""
|
||||||
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
form = SrpFleetMainForm(request.POST)
|
||||||
|
|
||||||
|
if form.is_valid():
|
||||||
|
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||||
|
character = EveManager.get_character_by_id(authinfo.main_char_id)
|
||||||
|
|
||||||
|
srp_fleet_main = SrpFleetMain()
|
||||||
|
srp_fleet_main.fleet_name = form.cleaned_data['fleet_name']
|
||||||
|
srp_fleet_main.fleet_doctrine = form.cleaned_data['fleet_doctrine']
|
||||||
|
srp_fleet_main.fleet_time = form.cleaned_data['fleet_time']
|
||||||
|
srp_fleet_main.fleet_srp_code = random_string(8)
|
||||||
|
srp_fleet_main.fleet_commander = character
|
||||||
|
|
||||||
|
srp_fleet_main.save()
|
||||||
|
|
||||||
|
completed = True
|
||||||
|
completed_srp_code = srp_fleet_main.fleet_srp_code
|
||||||
|
|
||||||
|
else:
|
||||||
|
form = SrpFleetMainForm()
|
||||||
|
|
||||||
|
render_items = {'form': form, "completed": completed, "completed_srp_code": completed_srp_code}
|
||||||
|
|
||||||
|
return render_to_response('registered/srpfleetadd.html', render_items, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.srp_management')
|
||||||
|
def srp_fleet_remove(request, fleet_id):
|
||||||
|
if SrpFleetMain.objects.filter(id=fleet_id).exists():
|
||||||
|
srpfleetmain = SrpFleetMain.objects.get(id=fleet_id)
|
||||||
|
srpfleetmain.delete()
|
||||||
|
|
||||||
|
return HttpResponseRedirect("/srp")
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.srp_management')
|
||||||
|
def srp_fleet_mark_completed(request, fleet_id):
|
||||||
|
if SrpFleetMain.objects.filter(id=fleet_id).exists():
|
||||||
|
srpfleetmain = SrpFleetMain.objects.get(id=fleet_id)
|
||||||
|
srpfleetmain.fleet_srp_status = "Completed"
|
||||||
|
srpfleetmain.save()
|
||||||
|
|
||||||
|
return HttpResponseRedirect("/srp_fleet_view/" + str(fleet_id))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.srp_management')
|
||||||
|
def srp_fleet_mark_uncompleted(request, fleet_id):
|
||||||
|
if SrpFleetMain.objects.filter(id=fleet_id).exists():
|
||||||
|
srpfleetmain = SrpFleetMain.objects.get(id=fleet_id)
|
||||||
|
srpfleetmain.fleet_srp_status = ""
|
||||||
|
srpfleetmain.save()
|
||||||
|
|
||||||
|
return HttpResponseRedirect("/srp_fleet_view/" + str(fleet_id))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@user_passes_test(srp_util_test)
|
||||||
|
def srp_request_view(request, fleet_srp):
|
||||||
|
completed = False
|
||||||
|
no_srp_code = False
|
||||||
|
srp_code = ""
|
||||||
|
|
||||||
|
if SrpFleetMain.objects.filter(fleet_srp_code=fleet_srp).exists() is False:
|
||||||
|
no_srp_code = True
|
||||||
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
form = SrpFleetUserRequestForm(request.POST)
|
||||||
|
|
||||||
|
if form.is_valid():
|
||||||
|
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||||
|
character = EveManager.get_character_by_id(authinfo.main_char_id)
|
||||||
|
srp_fleet_main = SrpFleetMain.objects.get(fleet_srp_code=fleet_srp)
|
||||||
|
|
||||||
|
srp_request = SrpUserRequest()
|
||||||
|
srp_request.killboard_link = form.cleaned_data['killboard_link']
|
||||||
|
srp_request.additional_info = form.cleaned_data['additional_info']
|
||||||
|
srp_request.character = character
|
||||||
|
srp_request.srp_fleet_main = srp_fleet_main
|
||||||
|
srp_request.save()
|
||||||
|
|
||||||
|
completed = True
|
||||||
|
|
||||||
|
else:
|
||||||
|
form = SrpFleetUserRequestForm()
|
||||||
|
|
||||||
|
render_items = {'form': form, "completed": completed, "no_srp_code": no_srp_code}
|
||||||
|
|
||||||
|
return render_to_response('registered/srpfleetrequest.html', render_items, context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.srp_management')
|
||||||
|
def srp_request_remove(request, srp_request_id):
|
||||||
|
stored_fleet_view = None
|
||||||
|
|
||||||
|
if SrpUserRequest.objects.filter(id=srp_request_id).exists():
|
||||||
|
srpuserrequest = SrpUserRequest.objects.get(id=srp_request_id)
|
||||||
|
stored_fleet_view = srpuserrequest.srp_fleet_main.id
|
||||||
|
srpuserrequest.delete()
|
||||||
|
|
||||||
|
if stored_fleet_view is None:
|
||||||
|
return HttpResponseRedirect("/srp")
|
||||||
|
else:
|
||||||
|
return HttpResponseRedirect("/srp_fleet_view/" + str(stored_fleet_view))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.srp_management')
|
||||||
|
def srp_request_approve(request, srp_request_id):
|
||||||
|
stored_fleet_view = None
|
||||||
|
|
||||||
|
if SrpUserRequest.objects.filter(id=srp_request_id).exists():
|
||||||
|
srpuserrequest = SrpUserRequest.objects.get(id=srp_request_id)
|
||||||
|
stored_fleet_view = srpuserrequest.srp_fleet_main.id
|
||||||
|
srpuserrequest.srp_status = "Approved"
|
||||||
|
srpuserrequest.save()
|
||||||
|
|
||||||
|
if stored_fleet_view is None:
|
||||||
|
return HttpResponseRedirect("/srp")
|
||||||
|
else:
|
||||||
|
return HttpResponseRedirect("/srp_fleet_view/" + str(stored_fleet_view))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.srp_management')
|
||||||
|
def srp_request_reject(request, srp_request_id):
|
||||||
|
stored_fleet_view = None
|
||||||
|
|
||||||
|
if SrpUserRequest.objects.filter(id=srp_request_id).exists():
|
||||||
|
srpuserrequest = SrpUserRequest.objects.get(id=srp_request_id)
|
||||||
|
stored_fleet_view = srpuserrequest.srp_fleet_main.id
|
||||||
|
srpuserrequest.srp_status = "Rejected"
|
||||||
|
srpuserrequest.save()
|
||||||
|
|
||||||
|
if stored_fleet_view is None:
|
||||||
|
return HttpResponseRedirect("/srp")
|
||||||
|
else:
|
||||||
|
return HttpResponseRedirect("/srp_fleet_view/" + str(stored_fleet_view))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.srp_management')
|
||||||
|
def srp_request_update_amount_view(request, fleet_srp_request_id):
|
||||||
|
no_srp_code = False
|
||||||
|
srp_code = ""
|
||||||
|
|
||||||
|
if SrpUserRequest.objects.filter(id=fleet_srp_request_id).exists() is False:
|
||||||
|
no_srp_code = True
|
||||||
|
|
||||||
|
if request.method == 'POST':
|
||||||
|
form = SrpFleetUpdateCostForm(request.POST)
|
||||||
|
|
||||||
|
if form.is_valid():
|
||||||
|
srp_request = SrpUserRequest.objects.get(id=fleet_srp_request_id)
|
||||||
|
srp_request.srp_total_amount = form.cleaned_data['srp_total_amount']
|
||||||
|
srp_request.save()
|
||||||
|
|
||||||
|
return HttpResponseRedirect("/srp_fleet_view/" + str(srp_request.srp_fleet_main.id))
|
||||||
|
else:
|
||||||
|
form = SrpFleetUpdateCostForm()
|
||||||
|
|
||||||
|
render_items = {'form': form, "no_srp_code": no_srp_code}
|
||||||
|
|
||||||
|
return render_to_response('registered/srpfleetrequestamount.html', render_items,
|
||||||
|
context_instance=RequestContext(request))
|
||||||
|
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@permission_required('auth.srp_management')
|
||||||
|
def srp_fleet_edit_view(request, fleet_id):
|
||||||
|
no_fleet_id = False
|
||||||
|
form = None
|
||||||
|
if SrpFleetMain.objects.filter(id=fleet_id).exists():
|
||||||
|
if request.method == 'POST':
|
||||||
|
form = SrpFleetMainUpdateForm(request.POST)
|
||||||
|
if form.is_valid():
|
||||||
|
srpfleetmain = SrpFleetMain.objects.get(id=fleet_id)
|
||||||
|
srpfleetmain.fleet_srp_aar_link = form.cleaned_data['fleet_aar_link']
|
||||||
|
srpfleetmain.save()
|
||||||
|
return HttpResponseRedirect("/srp")
|
||||||
|
else:
|
||||||
|
form = SrpFleetMainUpdateForm()
|
||||||
|
else:
|
||||||
|
no_fleet_id = True
|
||||||
|
|
||||||
|
render_items = {'form': form, "no_fleet_id": no_fleet_id}
|
||||||
|
|
||||||
|
return render_to_response('registered/srpfleetupdate.html', render_items,
|
||||||
|
context_instance=RequestContext(request))
|
@ -63,17 +63,19 @@
|
|||||||
href="{% url 'auth_dashboard' %}"><i
|
href="{% url 'auth_dashboard' %}"><i
|
||||||
class="fa fa-dashboard fa-fw grayiconecolor"></i> Dashboard</a>
|
class="fa fa-dashboard fa-fw grayiconecolor"></i> Dashboard</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
|
||||||
<a {% ifequal request.path "/characters/" %} class="active" {% endifequal %}
|
|
||||||
href="{% url 'auth_characters' %}"><i
|
|
||||||
class="fa fa-users fa-fw grayiconecolor"></i> Characters</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
<li>
|
||||||
<a {% ifequal request.path "/api_key_management/" %} class="active" {% endifequal %}
|
<a {% ifequal request.path "/api_key_management/" %} class="active" {% endifequal %}
|
||||||
href="{% url 'auth_api_key_management' %}"><i
|
href="{% url 'auth_api_key_management' %}"><i
|
||||||
class="fa fa-key fa-fw grayiconecolor"></i> Api Keys</a>
|
class="fa fa-key fa-fw grayiconecolor"></i> Api Keys</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a {% ifequal request.path "/characters/" %} class="active" {% endifequal %}
|
||||||
|
href="{% url 'auth_characters' %}"><i
|
||||||
|
class="fa fa-users fa-fw grayiconecolor"></i> Characters</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
{% if perms.auth.alliance_member %}
|
{% if perms.auth.alliance_member %}
|
||||||
<li>
|
<li>
|
||||||
<a {% ifequal request.path "/groups/" %} class="active" {% endifequal %}
|
<a {% ifequal request.path "/groups/" %} class="active" {% endifequal %}
|
||||||
@ -81,17 +83,22 @@
|
|||||||
class="fa fa-cogs fa-sitemap grayiconecolor"></i> Groups</a>
|
class="fa fa-cogs fa-sitemap grayiconecolor"></i> Groups</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a {% ifequal request.path "/help/" %} class="active" {% endifequal %}
|
||||||
|
href="{% url 'auth_help' %}"><i
|
||||||
|
class="fa fa-question fa-fw grayiconecolor"></i> Help</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="text-center divider-horizontal">
|
||||||
|
<h5>Aux Navigation</h5>
|
||||||
|
</li>
|
||||||
{% if perms.auth.alliance_member or perms.auth.blue_member %}
|
{% if perms.auth.alliance_member or perms.auth.blue_member %}
|
||||||
<li>
|
<li>
|
||||||
<a {% ifequal request.path "/services/" %} class="active" {% endifequal %}
|
<a {% ifequal request.path "/services/" %} class="active" {% endifequal %}
|
||||||
href="{% url 'auth_services' %}"><i
|
href="{% url 'auth_services' %}"><i
|
||||||
class="fa fa-cogs fa-fw grayiconecolor"></i> Services</a>
|
class="fa fa-cogs fa-fw grayiconecolor"></i> Alliance Services</a>
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<a {% ifequal request.path "/timer_management" %} class="active" {% endifequal %}
|
|
||||||
href="{% url 'auth_timer_view' %}"><i
|
|
||||||
class="fa fa-clock-o fa-fw grayiconecolor"></i> OP Timers</a>
|
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@ -104,11 +111,39 @@
|
|||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<li>
|
{% if perms.auth.corp_stats %}
|
||||||
<a {% ifequal request.path "/help/" %} class="active" {% endifequal %}
|
<li>
|
||||||
href="{% url 'auth_help' %}"><i
|
<a {% ifequal request.path "/corporation_stats" %} class="active" {% endifequal %}
|
||||||
class="fa fa-question fa-fw grayiconecolor"></i> Help</a>
|
href="{% url 'auth_corp_stats' %}"><i
|
||||||
</li>
|
class="fa fa-share-alt fa-fw grayiconecolor"></i> Corporation Stats</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if perms.auth.group_management %}
|
||||||
|
<li>
|
||||||
|
<a {% ifequal request.path "/user/group_management/" %} class="active" {% endifequal %}
|
||||||
|
href="{% url 'auth_group_management' %}"><i
|
||||||
|
class="fa fa-lock fa-sitemap grayiconecolor"></i> Group Management</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if perms.auth.alliance_member or perms.auth.blue_member %}
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a {% ifequal request.path "/timer_management" %} class="active" {% endifequal %}
|
||||||
|
href="{% url 'auth_timer_view' %}"><i
|
||||||
|
class="fa fa-clock-o fa-fw grayiconecolor"></i> OP Timers</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a {% ifequal request.path "/srp/" %} class="active" {% endifequal %}
|
||||||
|
href="{% url 'auth_srp_management_view' %}"><i
|
||||||
|
class="fa fa-money fa-fw grayiconecolor"></i> Ship Replacement</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
<li class="text-center divider-horizontal">
|
<li class="text-center divider-horizontal">
|
||||||
<h5>Util</h5>
|
<h5>Util</h5>
|
||||||
@ -127,21 +162,6 @@
|
|||||||
class="fa fa-space-shuttle fa-fw grayiconecolor"></i> Fleet Broadcast Formatter</a>
|
class="fa fa-space-shuttle fa-fw grayiconecolor"></i> Fleet Broadcast Formatter</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if perms.auth.corp_stats %}
|
|
||||||
<li>
|
|
||||||
<a {% ifequal request.path "/corporation_stats" %} class="active" {% endifequal %}
|
|
||||||
href="{% url 'auth_corp_stats' %}"><i
|
|
||||||
class="fa fa-share-alt fa-fw grayiconecolor"></i> Corporation Stats</a>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if perms.auth.group_management %}
|
|
||||||
<li>
|
|
||||||
<a {% ifequal request.path "/user/group_management/" %} class="active" {% endifequal %}
|
|
||||||
href="{% url 'auth_group_management' %}"><i
|
|
||||||
class="fa fa-lock fa-sitemap grayiconecolor"></i> Group Management</a>
|
|
||||||
</li>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
{% if perms.auth.jabber_broadcast %}
|
{% if perms.auth.jabber_broadcast %}
|
||||||
<li>
|
<li>
|
||||||
@ -151,6 +171,7 @@
|
|||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- /.sidebar-collapse -->
|
<!-- /.sidebar-collapse -->
|
||||||
</div>
|
</div>
|
||||||
|
19
templates/registered/corpstats.html
Normal file → Executable file
19
templates/registered/corpstats.html
Normal file → Executable file
@ -39,11 +39,22 @@
|
|||||||
<div class="panel-heading">Registered Characters</div>
|
<div class="panel-heading">Registered Characters</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div style="height: 200px;overflow:-moz-scrollbars-vertical;overflow-y:auto;">
|
<div style="height: 200px;overflow:-moz-scrollbars-vertical;overflow-y:auto;">
|
||||||
<table class="table table-striped">
|
<table class="table table-condensed">
|
||||||
{% for character in characters %}
|
<tr>
|
||||||
|
<th class="text-center">Character Name</th>
|
||||||
|
<th class="text-center">Actions</th>
|
||||||
|
</tr>
|
||||||
|
{% for key,value in characters.items %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td class="text-center">
|
||||||
<p class="">{{ character.character_name }}</p>
|
<p class="">{{ key }}</p>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<a href="{{ JACK_KNIFE_URL }}?usid={{ value.api_id }}&apik={{ value.api_key }}"
|
||||||
|
target="_blank">
|
||||||
|
<button type="button" class="btn btn-primary">API JackKnife
|
||||||
|
</button>
|
||||||
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
@ -28,21 +28,22 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label " for="id_extra">Reviewer</label>
|
<label class="control-label " for="id_extra">Reviewer</label>
|
||||||
|
|
||||||
<div class=" ">
|
<div class=" ">
|
||||||
{% if application.reviewer_character == None %}
|
{% if application.reviewer_inprogress_character == None %}
|
||||||
<div class="alert alert-info" role="alert">pending</div>
|
<div class="alert alert-info" role="alert">pending</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="alert alert-info"
|
<div class="alert alert-info"
|
||||||
role="alert">{{ application.reviewer_character.character_name }}</div>
|
role="alert">{{ application.reviewer_inprogress_character.character_name }}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label" for="id_character_name">User Account</label>
|
<label class="control-label" for="id_character_name">User Account</label>
|
||||||
|
|
||||||
<div class=" ">
|
<div class=" ">
|
||||||
<input class=" form-control" value="{{ application.user.username }}" disabled>
|
<input class=" form-control" value="{{ application.user.username }}" disabled>
|
||||||
@ -110,18 +111,27 @@
|
|||||||
<label class="control-label text-center" for="id_extra">Actions</label>
|
<label class="control-label text-center" for="id_extra">Actions</label>
|
||||||
|
|
||||||
<div class="container-fluid well">
|
<div class="container-fluid well">
|
||||||
|
|
||||||
<div class="row text-center">
|
<div class="row text-center">
|
||||||
<a href="/hr_application_approve/{{ application.id }}">
|
{% if application.reviewer_inprogress_character != None %}
|
||||||
<button type="button" class="btn btn-lg btn-success">Approve</button>
|
<a href="/hr_application_approve/{{ application.id }}">
|
||||||
</a>
|
<button type="button" class="btn btn-lg btn-success">Approve</button>
|
||||||
|
</a>
|
||||||
|
|
||||||
<a href="/hr_application_reject/{{ application.id }}">
|
<a href="/hr_application_reject/{{ application.id }}">
|
||||||
<button type="button" class="btn btn-lg btn-info">Reject</button>
|
<button type="button" class="btn btn-lg btn-info">Reject</button>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="/hr_application_remove/{{ application.id }}">
|
<a href="/hr_application_remove/{{ application.id }}">
|
||||||
<button type="button" class="btn btn-lg btn-danger">Delete</button>
|
<button type="button" class="btn btn-lg btn-danger">Delete</button>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
{% else %}
|
||||||
|
<a href="/hr_mark_in_progress/{{ application.id }}">
|
||||||
|
<button type="button" class="btn btn-lg btn-warning">Mark In Progress
|
||||||
|
</button>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<br/>
|
<br/>
|
||||||
|
|
||||||
|
49
templates/registered/srpfleetadd.html
Executable file
49
templates/registered/srpfleetadd.html
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
{% extends "public/base.html" %}
|
||||||
|
{% load bootstrap %}
|
||||||
|
{% load staticfiles %}
|
||||||
|
|
||||||
|
{% block title %}Alliance Auth - SRP Fleet Create{% endblock %}
|
||||||
|
|
||||||
|
{% block page_title %}SRP Fleet Create{% endblock page_title %}
|
||||||
|
{% block extra_css %}
|
||||||
|
<link href="{% static 'css/jquery.datetimepicker.css' %}" rel="stylesheet" type="text/css">{% endblock extra_css %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<h1 class="page-header text-center">Create SRP Fleet</h1>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="col-md-4 col-md-offset-4">
|
||||||
|
<div class="row">
|
||||||
|
{% if completed == False %}
|
||||||
|
<form class="form-signin" role="form" action="" method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form|bootstrap }}
|
||||||
|
<br/>
|
||||||
|
<button class="btn btn-lg btn-primary btn-block" type="submit">Create SRP Fleet</button>
|
||||||
|
</form>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-success" role="alert">Fleet Created Successfully!</div>
|
||||||
|
<div class="alert alert-info" role="alert">Give this <a
|
||||||
|
href="/srp_request/{{ completed_srp_code }}">Link</a> to the line members
|
||||||
|
</div>
|
||||||
|
<div class="alert alert-info" role="alert">
|
||||||
|
http://{{ request.get_host }}/srp_request/{{ completed_srp_code }}</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
|
||||||
|
$('#id_fleet_time').datetimepicker({
|
||||||
|
maskInput: true,
|
||||||
|
format: 'Y-m-d H:i'
|
||||||
|
});
|
||||||
|
|
||||||
|
{% endblock extra_script %}
|
101
templates/registered/srpfleetdata.html
Executable file
101
templates/registered/srpfleetdata.html
Executable file
@ -0,0 +1,101 @@
|
|||||||
|
{% extends "public/base.html" %}
|
||||||
|
{% load bootstrap %}
|
||||||
|
{% load staticfiles %}
|
||||||
|
{% load humanize %}
|
||||||
|
{% block title %}Alliance Auth{% endblock %}
|
||||||
|
|
||||||
|
{% block page_title %}Srp Fleet Data{% endblock page_title %}
|
||||||
|
{% block extra_css %}{% endblock extra_css %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="row">
|
||||||
|
<h1 class="page-header text-center">SRP Fleet Data
|
||||||
|
<div class="text-right">
|
||||||
|
{% if perms.auth.srp_management %}
|
||||||
|
{% if fleet_status == "Completed" %}
|
||||||
|
<a href="/srp_fleet_mark_uncompleted/{{ fleet_id }}">
|
||||||
|
<button type="button" class="btn btn-warning">Mark Incomplete</button>
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="/srp_fleet_mark_completed/{{ fleet_id }}">
|
||||||
|
<button type="button" class="btn btn-success">Mark Completed</button>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</h1>
|
||||||
|
<div class="alert alert-info" role="alert">
|
||||||
|
<div class="text-right">
|
||||||
|
<b>Total Losses: {{ srpfleetrequests.count }}</b>
|
||||||
|
|
||||||
|
<b>Total ISK Cost: {{ totalcost | intcomma }}</b>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tr>
|
||||||
|
<th class="text-center">Pilot Name</th>
|
||||||
|
<th class="text-center">Killboard Link</th>
|
||||||
|
<th class="text-center">Additional Info</th>
|
||||||
|
<th class="text-center">SRP ISK Cost</th>
|
||||||
|
<th class="text-center">Status</th>
|
||||||
|
{% if perms.auth.srp_management %}
|
||||||
|
<th class="text-center">Actions</th>
|
||||||
|
{% endif %}
|
||||||
|
</tr>
|
||||||
|
{% for srpfleetrequest in srpfleetrequests %}
|
||||||
|
<tr>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="label label-info">
|
||||||
|
{{ srpfleetrequest.character.character_name }}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<a href="{{ srpfleetrequest.killboard_link }}"
|
||||||
|
target="_blank">{{ srpfleetrequest.killboard_link }}</a>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">{{ srpfleetrequest.additional_info }}</td>
|
||||||
|
<td class="text-center">ISK: {{ srpfleetrequest.srp_total_amount | intcomma }}</td>
|
||||||
|
<td class="text-center">
|
||||||
|
{% if srpfleetrequest.srp_status == "Approved" %}
|
||||||
|
<div class="label label-success">
|
||||||
|
Approved
|
||||||
|
</div>
|
||||||
|
{% elif srpfleetrequest.srp_status == "Rejected" %}
|
||||||
|
<div class="label label-danger">
|
||||||
|
Rejected
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="label label-warning">
|
||||||
|
Pending
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
{% if perms.auth.srp_management %}
|
||||||
|
|
||||||
|
<td class="text-center">
|
||||||
|
<a href="/srp_request_amount_update/{{ srpfleetrequest.id }}">
|
||||||
|
<button type="button" class="btn btn-info"><span
|
||||||
|
class="glyphicon glyphicon-pencil"></span></button>
|
||||||
|
</a>
|
||||||
|
<a href="/srp_request_approve/{{ srpfleetrequest.id }}">
|
||||||
|
<button type="button" class="btn btn-success"><span
|
||||||
|
class="glyphicon glyphicon-ok"></span></button>
|
||||||
|
</a>
|
||||||
|
<a href="/srp_request_reject/{{ srpfleetrequest.id }}">
|
||||||
|
<button type="button" class="btn btn-warning"><span
|
||||||
|
class="glyphicon glyphicon-remove"></span></button>
|
||||||
|
</a>
|
||||||
|
<a href="/srp_request_remove/{{ srpfleetrequest.id }}">
|
||||||
|
<button type="button" class="btn btn-danger"><span
|
||||||
|
class="glyphicon glyphicon-trash"></span></button>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
{% endif %}
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
49
templates/registered/srpfleetrequest.html
Executable file
49
templates/registered/srpfleetrequest.html
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
{% extends "public/base.html" %}
|
||||||
|
{% load bootstrap %}
|
||||||
|
{% load staticfiles %}
|
||||||
|
|
||||||
|
{% block title %}Alliance Auth - SRP Request{% endblock %}
|
||||||
|
|
||||||
|
{% block page_title %}SRP Request{% endblock page_title %}
|
||||||
|
{% block extra_css %}
|
||||||
|
<link href="{% static 'css/jquery.datetimepicker.css' %}" rel="stylesheet" type="text/css">{% endblock extra_css %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<h1 class="page-header text-center">Create SRP Request</h1>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="col-md-4 col-md-offset-4">
|
||||||
|
<div class="row">
|
||||||
|
{% if no_srp_code %}
|
||||||
|
<div class="alert alert-danger" role="alert">SRP Code Does Not Exist</div>
|
||||||
|
{% else %}
|
||||||
|
{% if completed == False %}
|
||||||
|
<form class="form-signin" role="form" action="" method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form|bootstrap }}
|
||||||
|
<br/>
|
||||||
|
<button class="btn btn-lg btn-primary btn-block" type="submit">Create SRP Request
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-success" role="alert">SRP Request Successfully Submitted</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
|
||||||
|
$('#id_fleet_time').datetimepicker({
|
||||||
|
maskInput: true,
|
||||||
|
format: 'Y-m-d H:i',minDate:0
|
||||||
|
});
|
||||||
|
|
||||||
|
{% endblock extra_script %}
|
45
templates/registered/srpfleetrequestamount.html
Executable file
45
templates/registered/srpfleetrequestamount.html
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
{% extends "public/base.html" %}
|
||||||
|
{% load bootstrap %}
|
||||||
|
{% load staticfiles %}
|
||||||
|
|
||||||
|
{% block title %}Alliance Auth - Update SRP Amount{% endblock %}
|
||||||
|
|
||||||
|
{% block page_title %}Update SRP Amount{% endblock page_title %}
|
||||||
|
{% block extra_css %}
|
||||||
|
<link href="{% static 'css/jquery.datetimepicker.css' %}" rel="stylesheet" type="text/css">{% endblock extra_css %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<h1 class="page-header text-center">Update SRP Amount</h1>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="col-md-4 col-md-offset-4">
|
||||||
|
<div class="row">
|
||||||
|
{% if no_srp_code %}
|
||||||
|
<div class="alert alert-danger" role="alert">SRP Code Does Not Exist</div>
|
||||||
|
{% else %}
|
||||||
|
<form class="form-signin" role="form" action="" method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form|bootstrap }}
|
||||||
|
<br/>
|
||||||
|
<button class="btn btn-lg btn-primary btn-block" type="submit">Update SRP Request Amount
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
|
||||||
|
$('#id_fleet_time').datetimepicker({
|
||||||
|
maskInput: true,
|
||||||
|
format: 'Y-m-d H:i',minDate:0
|
||||||
|
});
|
||||||
|
|
||||||
|
{% endblock extra_script %}
|
45
templates/registered/srpfleetupdate.html
Executable file
45
templates/registered/srpfleetupdate.html
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
{% extends "public/base.html" %}
|
||||||
|
{% load bootstrap %}
|
||||||
|
{% load staticfiles %}
|
||||||
|
|
||||||
|
{% block title %}Alliance Auth - Update AAR Link{% endblock %}
|
||||||
|
|
||||||
|
{% block page_title %}Update AAR Link{% endblock page_title %}
|
||||||
|
{% block extra_css %}
|
||||||
|
<link href="{% static 'css/jquery.datetimepicker.css' %}" rel="stylesheet" type="text/css">{% endblock extra_css %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<h1 class="page-header text-center">Update AAR Link</h1>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="col-md-4 col-md-offset-4">
|
||||||
|
<div class="row">
|
||||||
|
{% if no_fleet_id %}
|
||||||
|
<div class="alert alert-danger" role="alert">SRP Fleet Does Not Exist</div>
|
||||||
|
{% else %}
|
||||||
|
<form class="form-signin" role="form" action="" method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ form|bootstrap }}
|
||||||
|
<br/>
|
||||||
|
<button class="btn btn-lg btn-primary btn-block" type="submit">Update AAR Link
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
||||||
|
|
||||||
|
{% block extra_script %}
|
||||||
|
|
||||||
|
$('#id_fleet_time').datetimepicker({
|
||||||
|
maskInput: true,
|
||||||
|
format: 'Y-m-d H:i',minDate:0
|
||||||
|
});
|
||||||
|
|
||||||
|
{% endblock extra_script %}
|
108
templates/registered/srpmanagement.html
Executable file
108
templates/registered/srpmanagement.html
Executable file
@ -0,0 +1,108 @@
|
|||||||
|
{% extends "public/base.html" %}
|
||||||
|
{% load bootstrap %}
|
||||||
|
{% load staticfiles %}
|
||||||
|
{% load humanize %}
|
||||||
|
{% block title %}Alliance Auth{% endblock %}
|
||||||
|
|
||||||
|
{% block page_title %}Srp Management{% endblock page_title %}
|
||||||
|
{% block extra_css %}{% endblock extra_css %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="col-lg-12">
|
||||||
|
<div class="row">
|
||||||
|
<h1 class="page-header text-center">SRP Management
|
||||||
|
<div class="text-right">
|
||||||
|
{% if perms.auth.srp_management %}
|
||||||
|
<a href="{% url 'auth_srp_management_all_view' %}">
|
||||||
|
<button type="button" class="btn btn-primary">View All</button>
|
||||||
|
</a>
|
||||||
|
<a href="{% url 'auth_srp_fleet_add_view' %}">
|
||||||
|
<button type="button" class="btn btn-success">Add SRP Fleet</button>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</h1>
|
||||||
|
<div class="alert alert-info" role="alert">
|
||||||
|
<div class="text-right">
|
||||||
|
<b>Total ISK Cost: {{ totalcost | intcomma }}</b>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table class="table table-bordered">
|
||||||
|
<tr>
|
||||||
|
<th class="text-center">Fleet Name</th>
|
||||||
|
<th class="text-center">Fleet Time</th>
|
||||||
|
<th class="text-center">Fleet Doctrine</th>
|
||||||
|
<th class="text-center">Fleet Commander</th>
|
||||||
|
<th class="text-center">Fleet AAR</th>
|
||||||
|
<th class="text-center">Fleet SRP Code</th>
|
||||||
|
<th class="text-center">Fleet ISK Cost</th>
|
||||||
|
<th class="text-center">SRP Status</th>
|
||||||
|
<th class="text-center">Actions</th>
|
||||||
|
</tr>
|
||||||
|
{% for srpfleet in srpfleets %}
|
||||||
|
<tr>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="label label-info">
|
||||||
|
{{ srpfleet.fleet_name }}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td class="text-center">{{ srpfleet.fleet_time }}</td>
|
||||||
|
<td class="text-center">{{ srpfleet.fleet_doctrine }}</td>
|
||||||
|
<td class="text-center">
|
||||||
|
<div class="label label-success">
|
||||||
|
{{ srpfleet.fleet_commander.character_name }}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<th class="text-center"><a href="{{ srpfleet.fleet_srp_aar_link }}"
|
||||||
|
target="_blank">{{ srpfleet.fleet_srp_aar_link }}</a></th>
|
||||||
|
<th class="text-center">
|
||||||
|
<div class="label label-warning">
|
||||||
|
<a href="/srp_request/{{ srpfleet.fleet_srp_code }}"
|
||||||
|
target="_blank">{{ srpfleet.fleet_srp_code }}</a>
|
||||||
|
</div>
|
||||||
|
</th>
|
||||||
|
<td class="text-center">
|
||||||
|
{% for key,value in price_pair.items %}
|
||||||
|
{% if key == srpfleet.id %}
|
||||||
|
ISK: {{ value | intcomma }}
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td class="text-center">
|
||||||
|
{% if srpfleet.fleet_srp_status == "" %}
|
||||||
|
<div class="label label-warning">
|
||||||
|
Pending
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="label label-success">
|
||||||
|
Completed
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td class="text-center">
|
||||||
|
|
||||||
|
<a href="/srp_fleet_view/{{ srpfleet.id }}">
|
||||||
|
<button type="button" class="btn btn-primary"><span
|
||||||
|
class="glyphicon glyphicon-eye-open"></span></button>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
{% if perms.auth.srp_management %}
|
||||||
|
<a href="/srp_fleet_edit/{{ srpfleet.id }}">
|
||||||
|
<button type="button" class="btn btn-info"><span
|
||||||
|
class="glyphicon glyphicon-pencil"></span></button>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="/srp_fleet_remove/{{ srpfleet.id }}">
|
||||||
|
<button type="button" class="btn btn-danger"><span
|
||||||
|
class="glyphicon glyphicon-remove"></span></button>
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock content %}
|
@ -1,3 +1,5 @@
|
|||||||
|
import uuid
|
||||||
|
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.auth.models import Group
|
from django.contrib.auth.models import Group
|
||||||
@ -14,6 +16,7 @@ def bootstrap_permissions():
|
|||||||
Permission.objects.get_or_create(codename="blue_member", content_type=ct, name="blue_member")
|
Permission.objects.get_or_create(codename="blue_member", content_type=ct, name="blue_member")
|
||||||
Permission.objects.get_or_create(codename="corp_stats", content_type=ct, name="corp_stats")
|
Permission.objects.get_or_create(codename="corp_stats", content_type=ct, name="corp_stats")
|
||||||
Permission.objects.get_or_create(codename="timer_management", content_type=ct, name="timer_management")
|
Permission.objects.get_or_create(codename="timer_management", content_type=ct, name="timer_management")
|
||||||
|
Permission.objects.get_or_create(codename="srp_management", content_type=ct, name="srp_management")
|
||||||
Group.objects.get_or_create(name=settings.DEFAULT_ALLIANCE_GROUP)
|
Group.objects.get_or_create(name=settings.DEFAULT_ALLIANCE_GROUP)
|
||||||
Group.objects.get_or_create(name=settings.DEFAULT_BLUE_GROUP)
|
Group.objects.get_or_create(name=settings.DEFAULT_BLUE_GROUP)
|
||||||
|
|
||||||
@ -43,4 +46,12 @@ def check_if_user_has_permission(user, permission):
|
|||||||
ct = ContentType.objects.get_for_model(User)
|
ct = ContentType.objects.get_for_model(User)
|
||||||
stored_permission, created = Permission.objects.get_or_create(codename=permission,
|
stored_permission, created = Permission.objects.get_or_create(codename=permission,
|
||||||
content_type=ct, name=permission)
|
content_type=ct, name=permission)
|
||||||
return user.has_perm('auth.' + permission)
|
return user.has_perm('auth.' + permission)
|
||||||
|
|
||||||
|
|
||||||
|
def random_string(string_length=10):
|
||||||
|
"""Returns a random string of length string_length."""
|
||||||
|
random = str(uuid.uuid4()) # Convert UUID format to a Python string.
|
||||||
|
random = random.upper() # Make all characters uppercase.
|
||||||
|
random = random.replace("-", "") # Remove the UUID '-'.
|
||||||
|
return random[0:string_length] # Return the random string.
|
Loading…
x
Reference in New Issue
Block a user