mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 12:30:15 +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 | corp_stats (View basic corp auth stats *who is authed etc*)
|
||||
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:
|
||||
|
@ -41,6 +41,7 @@ INSTALLED_APPS = (
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'django.contrib.humanize',
|
||||
'django_evolution',
|
||||
'djcelery',
|
||||
'celerytask',
|
||||
@ -53,6 +54,7 @@ INSTALLED_APPS = (
|
||||
'groupmanagement',
|
||||
'hrapplications',
|
||||
'timerboard',
|
||||
'srp',
|
||||
)
|
||||
|
||||
MIDDLEWARE_CLASSES = (
|
||||
|
@ -81,6 +81,9 @@ urlpatterns = patterns('',
|
||||
name="auth_hrapplication_reject"),
|
||||
url(r'hr_application_search/', 'hrapplications.views.hr_application_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
|
||||
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'^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'),
|
||||
|
||||
# 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):
|
||||
groupname = models.CharField(max_length=254)
|
||||
servicename = models.CharField(max_length=254, default="")
|
||||
|
||||
user = models.ForeignKey(User)
|
||||
|
||||
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)
|
||||
|
||||
|
||||
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):
|
||||
authserviceinfo = None
|
||||
try:
|
||||
@ -93,27 +108,28 @@ def add_to_databases(user, groups, syncgroups):
|
||||
if authserviceinfo:
|
||||
authserviceinfo = AuthServicesInfo.objects.get(user=user)
|
||||
|
||||
update = False
|
||||
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 != "":
|
||||
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 != "":
|
||||
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 != "":
|
||||
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 != "":
|
||||
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 != "":
|
||||
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):
|
||||
@ -168,8 +184,7 @@ def run_api_refresh():
|
||||
if api_key_pairs:
|
||||
valid_key = False
|
||||
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
|
||||
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)
|
||||
if main_alliance_id == settings.ALLIANCE_ID:
|
||||
pass
|
||||
elif corp != None:
|
||||
if not corp.is_blue:
|
||||
elif corp is not None:
|
||||
if corp.is_blue is not True:
|
||||
deactivate_services(user)
|
||||
else:
|
||||
deactivate_services(user)
|
||||
@ -277,6 +292,15 @@ def run_alliance_corp_update():
|
||||
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)
|
||||
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
|
||||
for all_corp_info in EveManager.get_all_corporation_info():
|
||||
alliance = None
|
||||
@ -325,7 +349,7 @@ def run_alliance_corp_update():
|
||||
# Check the alliances
|
||||
for all_alliance_info in EveManager.get_all_alliance_info():
|
||||
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()
|
||||
|
||||
|
||||
|
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 eveonline.models import EveCorporationInfo
|
||||
from eveonline.models import EveCharacter
|
||||
from eveonline.models import EveApiKeyPair
|
||||
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)
|
||||
corp = EveCorporationInfo.objects.get(corporation_id=main_char.corporation_id)
|
||||
current_count = 0
|
||||
allcharacters = []
|
||||
allcharacters = {}
|
||||
all_characters = EveCharacter.objects.all()
|
||||
for char in all_characters:
|
||||
if char:
|
||||
try:
|
||||
if char.corporation_id == corp.corporation_id:
|
||||
current_count = current_count + 1
|
||||
allcharacters.append(char)
|
||||
allcharacters[char.character_name] = EveApiKeyPair.objects.get(api_id=char.api_id)
|
||||
except:
|
||||
pass
|
||||
|
||||
|
@ -19,6 +19,8 @@ class HRApplication(models.Model):
|
||||
approved_denied = models.NullBooleanField(blank=True, null=True)
|
||||
reviewer_user = models.ForeignKey(User, blank=True, null=True, related_name="review_user")
|
||||
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):
|
||||
return self.character_name + " - Application"
|
||||
|
@ -177,4 +177,16 @@ def hr_application_search(request):
|
||||
return render_to_response('registered/hrapplicationsearchview.html',
|
||||
context, context_instance=RequestContext(request))
|
||||
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.
|
||||
def index_view(request):
|
||||
return render_to_response('public/index.html', None, context_instance=RequestContext(request))
|
||||
|
@ -6,7 +6,6 @@ from django.conf import settings
|
||||
|
||||
|
||||
class IPBoardManager:
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
@ -23,15 +22,18 @@ class IPBoardManager:
|
||||
@staticmethod
|
||||
def exec_xmlrpc(func, **kwargs):
|
||||
""" 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)
|
||||
params = {}
|
||||
for i in kwargs:
|
||||
params[i] = kwargs[i]
|
||||
params['api_key'] = settings.IPBOARD_APIKEY
|
||||
params['api_module'] = settings.IPBOARD_APIMODULE
|
||||
print params
|
||||
return getattr(server, func)(params)
|
||||
return getattr(server, func)(params)
|
||||
except:
|
||||
return {}
|
||||
|
||||
@staticmethod
|
||||
def add_user(username, email):
|
||||
@ -39,7 +41,8 @@ class IPBoardManager:
|
||||
sanatized = str(IPBoardManager.__santatize_username(username))
|
||||
plain_password = IPBoardManager.__generate_random_pass()
|
||||
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
|
||||
|
||||
@staticmethod
|
||||
|
@ -218,7 +218,13 @@ class MumbleManager:
|
||||
for g in addgroups:
|
||||
if not g in mumble_groups:
|
||||
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:
|
||||
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.execute(Phpbb3Manager.SQL_USER_ID_FROM_USERNAME, [username])
|
||||
row = cursor.fetchone()
|
||||
return row[0]
|
||||
if row is not None:
|
||||
return row[0]
|
||||
else:
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def __get_all_groups():
|
||||
@ -95,13 +98,19 @@ class Phpbb3Manager:
|
||||
|
||||
@staticmethod
|
||||
def __add_user_to_group(userid, groupid):
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
cursor.execute(Phpbb3Manager.SQL_ADD_USER_GROUP, [groupid, userid, 0])
|
||||
try:
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
cursor.execute(Phpbb3Manager.SQL_ADD_USER_GROUP, [groupid, userid, 0])
|
||||
except:
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def __remove_user_from_group(userid, groupid):
|
||||
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
|
||||
def add_user(username, email, groups):
|
||||
@ -118,8 +127,8 @@ class Phpbb3Manager:
|
||||
try:
|
||||
|
||||
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)
|
||||
except:
|
||||
pass
|
||||
@ -152,32 +161,36 @@ class Phpbb3Manager:
|
||||
@staticmethod
|
||||
def update_groups(username, groups):
|
||||
userid = Phpbb3Manager.__get_user_id(username)
|
||||
forum_groups = Phpbb3Manager.__get_all_groups()
|
||||
user_groups = set(Phpbb3Manager.__get_user_groups(userid))
|
||||
act_groups = set([g.replace(' ', '-') for g in groups])
|
||||
addgroups = act_groups - user_groups
|
||||
remgroups = user_groups - act_groups
|
||||
print username
|
||||
print addgroups
|
||||
print remgroups
|
||||
for g in addgroups:
|
||||
if not g in forum_groups:
|
||||
forum_groups[g] = Phpbb3Manager.__create_group(g)
|
||||
Phpbb3Manager.__add_user_to_group(userid, forum_groups[g])
|
||||
if userid is not None:
|
||||
forum_groups = Phpbb3Manager.__get_all_groups()
|
||||
user_groups = set(Phpbb3Manager.__get_user_groups(userid))
|
||||
act_groups = set([g.replace(' ', '-') for g in groups])
|
||||
addgroups = act_groups - user_groups
|
||||
remgroups = user_groups - act_groups
|
||||
print username
|
||||
print addgroups
|
||||
print remgroups
|
||||
for g in addgroups:
|
||||
if not g in forum_groups:
|
||||
forum_groups[g] = Phpbb3Manager.__create_group(g)
|
||||
Phpbb3Manager.__add_user_to_group(userid, forum_groups[g])
|
||||
|
||||
for g in remgroups:
|
||||
Phpbb3Manager.__remove_user_from_group(userid, forum_groups[g])
|
||||
for g in remgroups:
|
||||
Phpbb3Manager.__remove_user_from_group(userid, forum_groups[g])
|
||||
|
||||
@staticmethod
|
||||
def remove_group(username, group):
|
||||
cursor = connections['phpbb3'].cursor()
|
||||
userid = Phpbb3Manager.__get_user_id(username)
|
||||
groupid = Phpbb3Manager.__get_group_id(group)
|
||||
|
||||
if userid:
|
||||
if groupid:
|
||||
cursor.execute(Phpbb3Manager.SQL_REMOVE_USER_GROUP, [userid, groupid])
|
||||
if userid is not None:
|
||||
groupid = Phpbb3Manager.__get_group_id(group)
|
||||
|
||||
if userid:
|
||||
if groupid:
|
||||
try:
|
||||
cursor.execute(Phpbb3Manager.SQL_REMOVE_USER_GROUP, [userid, groupid])
|
||||
except:
|
||||
pass
|
||||
|
||||
@staticmethod
|
||||
def check_user(username):
|
||||
|
@ -18,7 +18,7 @@ class Teamspeak3Manager:
|
||||
def __santatize_username(username):
|
||||
sanatized = username.replace(" ", "_")
|
||||
sanatized = sanatized.replace("'", "")
|
||||
return sanatized.lower()
|
||||
return sanatized
|
||||
|
||||
@staticmethod
|
||||
def __generate_username(username, corp_ticker):
|
||||
@ -39,6 +39,7 @@ class Teamspeak3Manager:
|
||||
def _group_id_by_name(groupname):
|
||||
server = Teamspeak3Manager.__get_created_server()
|
||||
group_cache = server.send_command('servergrouplist')
|
||||
|
||||
for group in group_cache:
|
||||
if group['keys']['name'] == groupname:
|
||||
return group['keys']['sgid']
|
||||
@ -206,8 +207,10 @@ class Teamspeak3Manager:
|
||||
|
||||
@staticmethod
|
||||
def update_groups(uid, l_groups):
|
||||
print uid
|
||||
print l_groups
|
||||
userid = Teamspeak3Manager._get_userid(uid)
|
||||
if userid:
|
||||
if userid is not None:
|
||||
server_groups = Teamspeak3Manager._group_list()
|
||||
user_groups = set(Teamspeak3Manager._user_group_list(userid))
|
||||
groups = []
|
||||
|
@ -139,7 +139,7 @@ class TS3Proto():
|
||||
v = [v[0], '='.join(v[1:])]
|
||||
key, value = v
|
||||
keys[key] = self._unescape_str(value)
|
||||
elif v[0][0] == '-':
|
||||
elif v[0][0] and v[0][0] == '-':
|
||||
# Option
|
||||
opts.append(v[0][1:])
|
||||
else:
|
||||
|
@ -12,6 +12,7 @@ from managers.ipboard_manager import IPBoardManager
|
||||
from managers.teamspeak3_manager import Teamspeak3Manager
|
||||
from authentication.managers import AuthServicesInfoManager
|
||||
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_mumble_groups
|
||||
from celerytask.tasks import update_forum_groups
|
||||
@ -96,6 +97,7 @@ def activate_forum(request):
|
||||
def deactivate_forum(request):
|
||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||
result = Phpbb3Manager.disable_user(authinfo.forum_username)
|
||||
remove_all_syncgroups_for_service(request.user, "phpbb")
|
||||
# false we failed
|
||||
if result:
|
||||
AuthServicesInfoManager.update_user_forum_info("", "", request.user)
|
||||
@ -134,6 +136,7 @@ def activate_ipboard_forum(request):
|
||||
def deactivate_ipboard_forum(request):
|
||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||
result = IPBoardManager.disable_user(authinfo.ipboard_username)
|
||||
remove_all_syncgroups_for_service(request.user, "ipboard")
|
||||
# false we failed
|
||||
if result:
|
||||
AuthServicesInfoManager.update_user_ipboard_info("", "", request.user)
|
||||
@ -171,6 +174,7 @@ def activate_jabber(request):
|
||||
def deactivate_jabber(request):
|
||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||
result = OpenfireManager.delete_user(authinfo.jabber_username)
|
||||
remove_all_syncgroups_for_service(request.user, "openfire")
|
||||
# If our username is blank means we failed
|
||||
if result:
|
||||
AuthServicesInfoManager.update_user_jabber_info("", "", request.user)
|
||||
@ -212,6 +216,7 @@ def activate_mumble(request):
|
||||
def deactivate_mumble(request):
|
||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||
result = MumbleManager.delete_user(authinfo.mumble_username)
|
||||
remove_all_syncgroups_for_service(request.user, "mumble")
|
||||
# if false we failed
|
||||
if result:
|
||||
AuthServicesInfoManager.update_user_mumble_info("", "", request.user)
|
||||
@ -224,6 +229,7 @@ def deactivate_mumble(request):
|
||||
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)
|
||||
@ -254,9 +260,13 @@ def activate_teamspeak3(request):
|
||||
def deactivate_teamspeak3(request):
|
||||
authinfo = AuthServicesInfoManager.get_auth_service_info(request.user)
|
||||
result = Teamspeak3Manager.delete_user(authinfo.teamspeak3_uid)
|
||||
|
||||
remove_all_syncgroups_for_service(request.user, "teamspeak3")
|
||||
|
||||
# if false we failed
|
||||
if result:
|
||||
AuthServicesInfoManager.update_user_teamspeak3_info("", "", request.user)
|
||||
|
||||
return HttpResponseRedirect("/services/")
|
||||
return HttpResponseRedirect("/")
|
||||
|
||||
@ -269,6 +279,8 @@ def reset_teamspeak3_perm(request):
|
||||
|
||||
Teamspeak3Manager.delete_user(authinfo.teamspeak3_uid)
|
||||
|
||||
remove_all_syncgroups_for_service(request.user, "teamspeak3")
|
||||
|
||||
if check_if_user_has_permission(request.user, "blue_member"):
|
||||
result = Teamspeak3Manager.generate_new_blue_permissionkey(authinfo.teamspeak3_uid, character.character_name,
|
||||
character.corporation_ticker)
|
||||
@ -279,5 +291,6 @@ def reset_teamspeak3_perm(request):
|
||||
# if blank we failed
|
||||
if result != "":
|
||||
AuthServicesInfoManager.update_user_teamspeak3_info(result[0], result[1], request.user)
|
||||
update_teamspeak3_groups(request.user)
|
||||
return HttpResponseRedirect("/services/")
|
||||
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
|
||||
class="fa fa-dashboard fa-fw grayiconecolor"></i> Dashboard</a>
|
||||
</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>
|
||||
<a {% ifequal request.path "/api_key_management/" %} class="active" {% endifequal %}
|
||||
href="{% url 'auth_api_key_management' %}"><i
|
||||
class="fa fa-key fa-fw grayiconecolor"></i> Api Keys</a>
|
||||
</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 %}
|
||||
<li>
|
||||
<a {% ifequal request.path "/groups/" %} class="active" {% endifequal %}
|
||||
@ -81,17 +83,22 @@
|
||||
class="fa fa-cogs fa-sitemap grayiconecolor"></i> Groups</a>
|
||||
</li>
|
||||
{% 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 %}
|
||||
<li>
|
||||
<a {% ifequal request.path "/services/" %} class="active" {% endifequal %}
|
||||
href="{% url 'auth_services' %}"><i
|
||||
class="fa fa-cogs fa-fw grayiconecolor"></i> 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>
|
||||
class="fa fa-cogs fa-fw grayiconecolor"></i> Alliance Services</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
@ -104,11 +111,39 @@
|
||||
</li>
|
||||
{% 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>
|
||||
{% 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.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">
|
||||
<h5>Util</h5>
|
||||
@ -127,21 +162,6 @@
|
||||
class="fa fa-space-shuttle fa-fw grayiconecolor"></i> Fleet Broadcast Formatter</a>
|
||||
</li>
|
||||
{% 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 %}
|
||||
<li>
|
||||
@ -151,6 +171,7 @@
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<!-- /.sidebar-collapse -->
|
||||
</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-body">
|
||||
<div style="height: 200px;overflow:-moz-scrollbars-vertical;overflow-y:auto;">
|
||||
<table class="table table-striped">
|
||||
{% for character in characters %}
|
||||
<table class="table table-condensed">
|
||||
<tr>
|
||||
<th class="text-center">Character Name</th>
|
||||
<th class="text-center">Actions</th>
|
||||
</tr>
|
||||
{% for key,value in characters.items %}
|
||||
<tr>
|
||||
<td>
|
||||
<p class="">{{ character.character_name }}</p>
|
||||
<td class="text-center">
|
||||
<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>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
@ -28,21 +28,22 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label " for="id_extra">Reviewer</label>
|
||||
|
||||
<div class=" ">
|
||||
{% if application.reviewer_character == None %}
|
||||
{% if application.reviewer_inprogress_character == None %}
|
||||
<div class="alert alert-info" role="alert">pending</div>
|
||||
{% else %}
|
||||
<div class="alert alert-info"
|
||||
role="alert">{{ application.reviewer_character.character_name }}</div>
|
||||
role="alert">{{ application.reviewer_inprogress_character.character_name }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<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=" ">
|
||||
<input class=" form-control" value="{{ application.user.username }}" disabled>
|
||||
@ -110,18 +111,27 @@
|
||||
<label class="control-label text-center" for="id_extra">Actions</label>
|
||||
|
||||
<div class="container-fluid well">
|
||||
|
||||
<div class="row text-center">
|
||||
<a href="/hr_application_approve/{{ application.id }}">
|
||||
<button type="button" class="btn btn-lg btn-success">Approve</button>
|
||||
</a>
|
||||
{% if application.reviewer_inprogress_character != None %}
|
||||
<a href="/hr_application_approve/{{ application.id }}">
|
||||
<button type="button" class="btn btn-lg btn-success">Approve</button>
|
||||
</a>
|
||||
|
||||
<a href="/hr_application_reject/{{ application.id }}">
|
||||
<button type="button" class="btn btn-lg btn-info">Reject</button>
|
||||
</a>
|
||||
<a href="/hr_application_reject/{{ application.id }}">
|
||||
<button type="button" class="btn btn-lg btn-info">Reject</button>
|
||||
</a>
|
||||
|
||||
<a href="/hr_application_remove/{{ application.id }}">
|
||||
<button type="button" class="btn btn-lg btn-danger">Delete</button>
|
||||
</a>
|
||||
<a href="/hr_application_remove/{{ application.id }}">
|
||||
<button type="button" class="btn btn-lg btn-danger">Delete</button>
|
||||
</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>
|
||||
<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.auth.models import User
|
||||
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="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="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_BLUE_GROUP)
|
||||
|
||||
@ -43,4 +46,12 @@ def check_if_user_has_permission(user, permission):
|
||||
ct = ContentType.objects.get_for_model(User)
|
||||
stored_permission, created = Permission.objects.get_or_create(codename=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