Merge branch 'services-template-improvements' into 'v4.x'

Services template improvements

See merge request allianceauth/allianceauth!1553
This commit is contained in:
Ariel Rin 2023-10-31 12:42:08 +00:00
commit 068bf1ae7a
22 changed files with 231 additions and 165 deletions

View File

@ -70,22 +70,21 @@ class DiscordService(ServicesHook):
discord_username = self.get_discord_username(
username=username, discriminator=discriminator
)
# if username and discriminator:
# discord_username = f'{username}#{discriminator}'
#
# # New Discord user name format
# if discriminator == '0':
# discord_username = f'@{username}'
# else:
# discord_username = ''
else:
discord_username = ''
user_has_account = False
urls = self.Urls()
urls.auth_activate = 'discord:activate'
urls.auth_deactivate = 'discord:deactivate'
urls.auth_reset = 'discord:reset'
urls.auth_add_bot = 'discord:add_bot'
return render_to_string(
self.service_ctrl_template,
{
'service_name': self.title,
'urls': urls,
'server_name': server_name(),
'user_has_account': user_has_account,
'discord_username': discord_username

View File

@ -1,34 +1,49 @@
{% extends "services/services_ctrl_base.html" %}
{% load i18n %}
<div class="card text-center m-4" style="min-width: 18rem; min-height: 18rem;">
<div class="card-body ">
<h5 class="card-title ">{% translate "Discord" %}</h5>
<p class="card-text">{% if server_name %}{{ server_name }}{% else %}{% translate "Unlinked Server" %}{% endif %}</p>
<p class="card-text"><span class="badge {% if user_has_account %}bg-success{% else %}bg-warning{% endif %}">{% if user_has_account %}{% translate "Active" %}{% else %}{% translate "Disabled" %}{% endif %}</span></p>
<p class="card-text">
{% if not user_has_account %}
{% translate "(not activated)" %}
{% else %}
{% block title %}
{{ service_name }}
{% endblock %}
{% block url %}
{{ server_name }}
{% endblock %}
{% block active %}
{% include "services/service_status.html" with username=discord_username %}
{% endblock %}
{% block user %}
{% if discord_username %}
{{ discord_username }}
{% endif %}
</p>
</div>
<div class="card-footer">
{% endblock %}
{% block controls %}
{% if not user_has_account %}
<a href="{% url 'discord:activate' %}" title="{% translate 'Join the Discord server' %}" class="btn btn-primary">
{% if urls.auth_activate %}
<a class="btn btn-warning" href="{% url urls.auth_activate %}" title="{% translate 'Activate' %}">
<span class="fas fa-check fa-fw"></span>
</a>
{% endif %}
{% else %}
<a href="{% url 'discord:reset' %}" title="{% translate 'Leave- and rejoin the Discord Server (Reset)' %}" class="btn btn-warning">
{% if urls.auth_reset %}
<a class="btn btn-primary" href="{% url urls.auth_reset %}" title="{% translate 'Reset Password' %}">
<span class="fas fa-sync fa-fw"></span>
</a>
<a href="{% url 'discord:deactivate' %}" title="{% translate 'Leave the Discord server' %}" class="btn btn-danger">
{% endif %}
{% if urls.auth_deactivate %}
<a class="btn btn-danger" href="{% url urls.auth_deactivate %}" title="{% translate 'Deactivate' %}">
<span class="fas fa-times fa-fw"></span>
</a>
{% endif %}
{% endif %}
{% if request.user.is_superuser %}
<a type="button" id="btnLinkDiscordServer" class="btn btn-primary" href="{% url 'discord:add_bot' %}">
<a class="btn btn-primary" type="button" id="btnLinkDiscordServer" href="{% url urls.auth_add_bot %}" title="{% translate 'Link Discord Server' %}">
<span class="fas fa-link fa-fw"></span>
</a>
{% endif %}
</div>
</div>
{% endblock %}

View File

@ -26,11 +26,11 @@ def deactivate_discord(request):
if request.user.discord.delete_user(
is_rate_limited=False, handle_api_exceptions=True
):
logger.info("Successfully deactivated discord for user %s", request.user)
logger.info("Successfully deactivated Discord for user %s", request.user)
messages.success(request, _('Deactivated Discord account.'))
else:
logger.error(
"Unsuccessful attempt to deactivate discord for user %s", request.user
"Unsuccessful attempt to deactivate Discord for user %s", request.user
)
messages.error(
request, _('An error occurred while processing your Discord account.')
@ -46,14 +46,14 @@ def reset_discord(request):
is_rate_limited=False, handle_api_exceptions=True
):
logger.info(
"Successfully deleted discord user for user %s - "
"forwarding to discord activation.",
"Successfully deleted Discord user for user %s - "
"forwarding to Discord activation.",
request.user
)
return redirect("discord:activate")
logger.error(
"Unsuccessful attempt to reset discord for user %s", request.user
"Unsuccessful attempt to reset Discord for user %s", request.user
)
messages.error(
request, _('An error occurred while processing your Discord account.')

View File

@ -10,11 +10,17 @@
{% endblock %}
{% block user %}
Username: {{ char.character_name }}
{% include "services/service_username.html" with username=char.character_name %}
{% endblock %}
{% block active %}
<span class="badge bg-success">
{% translate "SSO login active" %}
</span>
{% endblock %}
{% block controls %}
<a title="Go To Forums" href="{{ DISCOURSE_URL }}" class="btn btn-success">
<a class="btn btn-success" href="{{ DISCOURSE_URL }}" title="{% translate 'Go to forums' %}">
<span class="fas fa-arrow-right fa-fw"></span>
</a>
{% endblock %}

View File

@ -25,9 +25,9 @@ def activate_ips4(request):
# if empty we failed
if result[0] != "" and not Ips4Tasks.has_account(request.user):
ips_user = Ips4User.objects.create(user=request.user, id=result[2], username=result[0])
logger.debug("Updated authserviceinfo for user %s with IPS4 credentials." % request.user)
logger.debug("Updated authserviceinfo for user %s with IPSuite4 credentials." % request.user)
# update_ips4_groups.delay(request.user.pk)
logger.info("Successfully activated IPS4 for user %s" % request.user)
logger.info("Successfully activated IPSuite4 for user %s" % request.user)
messages.success(request, _('Activated IPSuite4 account.'))
credentials = {
'username': result[0],
@ -35,7 +35,7 @@ def activate_ips4(request):
}
return render(request, 'services/service_credentials.html', context={'credentials': credentials, 'service': 'IPSuite4'})
else:
logger.error("Unsuccessful attempt to activate IPS4 for user %s" % request.user)
logger.error("Unsuccessful attempt to activate IPSuite4 for user %s" % request.user)
messages.error(request, _('An error occurred while processing your IPSuite4 account.'))
return redirect("services:services")
@ -48,7 +48,7 @@ def reset_ips4_password(request):
result = Ips4Manager.update_user_password(request.user.ips4.username)
# false we failed
if result != "":
logger.info("Successfully reset IPS4 password for user %s" % request.user)
logger.info("Successfully reset IPSuite4 password for user %s" % request.user)
messages.success(request, _('Reset IPSuite4 password.'))
credentials = {
'username': request.user.ips4.username,
@ -56,7 +56,7 @@ def reset_ips4_password(request):
}
return render(request, 'services/service_credentials.html', context={'credentials': credentials, 'service': 'IPSuite4'})
logger.error("Unsuccessful attempt to reset IPS4 password for user %s" % request.user)
logger.error("Unsuccessful attempt to reset IPSuite4 password for user %s" % request.user)
messages.error(request, _('An error occurred while processing your IPSuite4 account.'))
return redirect("services:services")
@ -74,10 +74,10 @@ def set_ips4_password(request):
logger.debug("Form contains password of length %s" % len(password))
result = Ips4Manager.update_custom_password(request.user.ips4.username, plain_password=password)
if result != "":
logger.info("Successfully set IPS4 password for user %s" % request.user)
logger.info("Successfully set IPSuite4 password for user %s" % request.user)
messages.success(request, _('Set IPSuite4 password.'))
else:
logger.error("Failed to install custom IPS4 password for user %s" % request.user)
logger.error("Failed to install custom IPSuite4 password for user %s" % request.user)
messages.error(request, _('An error occurred while processing your IPSuite4 account.'))
return redirect('services:services')
else:
@ -94,9 +94,9 @@ def set_ips4_password(request):
def deactivate_ips4(request):
logger.debug("deactivate_ips4 called by user %s" % request.user)
if Ips4Tasks.delete_user(request.user):
logger.info("Successfully deactivated IPS4 for user %s" % request.user)
logger.info("Successfully deactivated IPSuite4 for user %s" % request.user)
messages.success(request, _('Deactivated IPSuite4 account.'))
else:
logger.error("Unsuccessful attempt to deactivate IPS4 for user %s" % request.user)
logger.error("Unsuccessful attempt to deactivate IPSuite4 for user %s" % request.user)
messages.error(request, _('An error occurred while processing your IPSuite4 account.'))
return redirect("services:services")

View File

@ -1,34 +1,49 @@
{% load i18n %}
<div class="card text-center m-4" style="min-width: 18rem; min-height: 18rem;">
<div class="card-body ">
<h5 class="card-title ">{{ service_name }}</h5>
<p class="card-text"><a href="mumble://{{ service_url }}">{{ service_url }}</a></p>
<p class="card-text"><span class="badge {% if username != '' %}bg-success{% else %}bg-warning{% endif %}">{% if username != '' %}Active{% else %}Disabled{% endif %}</span></p>
<p class="card-text">Username: <span class="badge bg-secondary text-end">{{ username }}</span></p>
</div>
{% extends "services/services_ctrl_base.html" %}
<div class="card-footer">
{% load i18n %}
{% block title %}
{{ service_name }}
{% endblock %}
{% block url %}
<a href="{{ service_url }}">{{ service_url }}</a>
{% endblock %}
{% block user %}
{% include "services/service_username.html" with username=username %}
{% endblock %}
{% block controls %}
{% if username == "" %}
<div class="text-center">
<a href="{% url 'mumble:activate' %}" title="Activate" class="btn btn-warning">
{% if urls.auth_activate %}
<a class="btn btn-warning" href="{% url urls.auth_activate %}" title="{% translate 'Activate' %}">
<span class="fas fa-check fa-fw"></span>
</a>
</div>
{% endif %}
{% else %}
<div class="text-center">
<a href="{% url 'mumble:set_password' %}" title="Set Password" class="btn btn-warning">
{% if urls.auth_set_password %}
<a class="btn btn-warning" href="{% url urls.auth_set_password %}" title="{% translate 'Set Password' %}">
<span class="fas fa-edit fa-fw"></span>
</a>
<a href="{% url 'mumble:reset_password' %}" title="Reset Password" class="btn btn-primary">
{% endif %}
{% if urls.auth_reset_password %}
<a class="btn btn-primary" href="{% url urls.auth_reset_password %}" title="{% translate 'Reset Password' %}">
<span class="fas fa-sync fa-fw"></span>
</a>
<a href="{% url 'mumble:deactivate' %}" title="Deactivate" class="btn btn-danger">
{% endif %}
{% if urls.auth_deactivate %}
<a class="btn btn-danger" href="{% url urls.auth_deactivate %}" title="{% translate 'Deactivate' %}">
<span class="fas fa-times fa-fw"></span>
</a>
<a href="mumble://{{ connect_url }}" class="btn btn-success" title="Connect">
{% endif %}
{% if connect_url %}
<a class="btn btn-success" href="mumble://{{ connect_url }}" title="{% translate 'Connect' %}">
<span class="fas fa-arrow-right fa-fw"></span>
</a>
</div>
{% endif %}
</div>
</div>
{% endif %}
{% endblock %}

View File

@ -1,5 +1,5 @@
{% extends "allianceauth/base.html" %}
{% load bootstrap %}
{% load django_bootstrap5 %}
{% load i18n %}
{% block page_title %}{% translate "Jabber Broadcast" %}{% endblock page_title %}
@ -17,7 +17,7 @@
{% endif %}
<form class="form-signin" role="form" action="" method="POST" onsubmit="submitbutton.disabled = true; return true;">
{% csrf_token %}
{{ form|bootstrap }}
{% bootstrap_form form %}
<br>
<button class="btn btn-lg btn-primary btn-block" name="submitbutton" type="submit">{% translate "Broadcast" %}
</button>

View File

@ -24,23 +24,23 @@ ACCESS_PERM = 'openfire.access_openfire'
def activate_jabber(request):
logger.debug("activate_jabber called by user %s" % request.user)
character = request.user.profile.main_character
logger.debug(f"Adding jabber user for user {request.user} with main character {character}")
logger.debug(f"Adding Jabber user for user {request.user} with main character {character}")
info = OpenfireManager.add_user(OpenfireTasks.get_username(request.user))
# If our username is blank means we already had a user
if info[0] != "":
OpenfireUser.objects.update_or_create(user=request.user, defaults={'username': info[0]})
logger.debug("Updated authserviceinfo for user %s with jabber credentials. Updating groups." % request.user)
logger.debug("Updated authserviceinfo for user %s with Jabber credentials. Updating groups." % request.user)
OpenfireTasks.update_groups.delay(request.user.pk)
logger.info("Successfully activated jabber for user %s" % request.user)
messages.success(request, _('Activated jabber account.'))
logger.info("Successfully activated Jabber for user %s" % request.user)
messages.success(request, _('Activated Jabber account.'))
credentials = {
'username': info[0],
'password': info[1],
}
return render(request, 'services/service_credentials.html', context={'credentials': credentials, 'service': 'Jabber'})
else:
logger.error("Unsuccessful attempt to activate jabber for user %s" % request.user)
messages.error(request, _('An error occurred while processing your jabber account.'))
logger.error("Unsuccessful attempt to activate Jabber for user %s" % request.user)
messages.error(request, _('An error occurred while processing your Jabber account.'))
return redirect("services:services")
@ -49,11 +49,11 @@ def activate_jabber(request):
def deactivate_jabber(request):
logger.debug("deactivate_jabber called by user %s" % request.user)
if OpenfireTasks.has_account(request.user) and OpenfireTasks.delete_user(request.user):
logger.info("Successfully deactivated jabber for user %s" % request.user)
messages.success(request, 'Deactivated jabber account.')
logger.info("Successfully deactivated Jabber for user %s" % request.user)
messages.success(request, 'Deactivated Jabber account.')
else:
logger.error("Unsuccessful attempt to deactivate jabber for user %s" % request.user)
messages.error(request, _('An error occurred while processing your jabber account.'))
logger.error("Unsuccessful attempt to deactivate Jabber for user %s" % request.user)
messages.error(request, _('An error occurred while processing your Jabber account.'))
return redirect("services:services")
@ -65,15 +65,15 @@ def reset_jabber_password(request):
result = OpenfireManager.update_user_pass(request.user.openfire.username)
# If our username is blank means we failed
if result != "":
logger.info("Successfully reset jabber password for user %s" % request.user)
messages.success(request, _('Reset jabber password.'))
logger.info("Successfully reset Jabber password for user %s" % request.user)
messages.success(request, _('Reset Jabber password.'))
credentials = {
'username': request.user.openfire.username,
'password': result,
}
return render(request, 'services/service_credentials.html', context={'credentials': credentials, 'service': 'Jabber'})
logger.error("Unsuccessful attempt to reset jabber for user %s" % request.user)
messages.error(request, _('An error occurred while processing your jabber account.'))
logger.error("Unsuccessful attempt to reset Jabber for user %s" % request.user)
messages.error(request, _('An error occurred while processing your Jabber account.'))
return redirect("services:services")
@ -95,7 +95,7 @@ def jabber_broadcast_view(request):
logger.debug("Received POST request containing form, valid: %s" % form.is_valid())
if form.is_valid():
main_char = request.user.profile.main_character
logger.debug(f"Processing jabber broadcast for user {request.user} with main character {main_char}")
logger.debug(f"Processing Jabber broadcast for user {request.user} with main character {main_char}")
try:
if main_char is not None:
message_to_send = form.cleaned_data['message'] + "\n##### SENT BY: " + "[" + main_char.corporation_ticker + "]" + \
@ -112,8 +112,8 @@ def jabber_broadcast_view(request):
OpenfireManager.send_broadcast_message(group_to_send, message_to_send)
messages.success(request, _('Sent jabber broadcast to %s' % group_to_send))
logger.info("Sent jabber broadcast on behalf of user %s" % request.user)
messages.success(request, _('Sent Jabber broadcast to %s' % group_to_send))
logger.info("Sent Jabber broadcast on behalf of user %s" % request.user)
except PingBotException as e:
messages.error(request, e)
@ -140,11 +140,11 @@ def set_jabber_password(request):
logger.debug("Form contains password of length %s" % len(password))
result = OpenfireManager.update_user_pass(request.user.openfire.username, password=password)
if result != "":
logger.info("Successfully set jabber password for user %s" % request.user)
logger.info("Successfully set Jabber password for user %s" % request.user)
messages.success(request, _('Set jabber password.'))
else:
logger.error("Failed to install custom jabber password for user %s" % request.user)
messages.error(request, _('An error occurred while processing your jabber account.'))
logger.error("Failed to install custom Jabber password for user %s" % request.user)
messages.error(request, _('An error occurred while processing your Jabber account.'))
return redirect("services:services")
else:
logger.debug("Request is not type POST - providing empty form.")

View File

@ -24,7 +24,7 @@ def activate_smf(request):
main_character = request.user.profile.main_character
logger.debug(
f"Adding smf user for user {request.user} with main character {main_character}"
f"Adding SMF user for user {request.user} with main character {main_character}"
)
result = SmfManager.add_user(
@ -42,12 +42,12 @@ def activate_smf(request):
logger.debug(
f"Updated authserviceinfo for user {request.user} "
f"with smf credentials. Updating groups."
f"with SMF credentials. Updating groups."
)
SmfTasks.update_groups.delay(request.user.pk)
logger.info(f"Successfully activated smf for user {request.user}")
logger.info(f"Successfully activated SMF for user {request.user}")
messages.success(request, _('Activated SMF account.'))
credentials = {
@ -61,7 +61,7 @@ def activate_smf(request):
context={'credentials': credentials, 'service': 'SMF'},
)
logger.error(f"Unsuccessful attempt to activate smf for user {request.user}")
logger.error(f"Unsuccessful attempt to activate SMF for user {request.user}")
messages.error(request, _('An error occurred while processing your SMF account.'))
return redirect("services:services")
@ -74,10 +74,10 @@ def deactivate_smf(request):
result = SmfTasks.delete_user(request.user)
# false we failed
if result:
logger.info("Successfully deactivated smf for user %s" % request.user)
logger.info("Successfully deactivated SMF for user %s" % request.user)
messages.success(request, _('Deactivated SMF account.'))
else:
logger.error("Unsuccessful attempt to activate smf for user %s" % request.user)
logger.error("Unsuccessful attempt to activate SMF for user %s" % request.user)
messages.error(request, _('An error occurred while processing your SMF account.'))
return redirect("services:services")
@ -91,14 +91,14 @@ def reset_smf_password(request):
result = SmfManager.update_user_password(request.user.smf.username, character.character_id)
# false we failed
if result != "":
logger.info("Successfully reset smf password for user %s" % request.user)
logger.info("Successfully reset SMF password for user %s" % request.user)
messages.success(request, _('Reset SMF password.'))
credentials = {
'username': request.user.smf.username,
'password': result,
}
return render(request, 'services/service_credentials.html', context={'credentials': credentials, 'service': 'SMF'})
logger.error("Unsuccessful attempt to reset smf password for user %s" % request.user)
logger.error("Unsuccessful attempt to reset SMF password for user %s" % request.user)
messages.error(request, _('An error occurred while processing your SMF account.'))
return redirect("services:services")
@ -117,10 +117,10 @@ def set_smf_password(request):
logger.debug("Form contains password of length %s" % len(password))
result = SmfManager.update_user_password(request.user.smf.username, character.character_id, password=password)
if result != "":
logger.info("Successfully set smf password for user %s" % request.user)
logger.info("Successfully set SMF password for user %s" % request.user)
messages.success(request, _('Set SMF password.'))
else:
logger.error("Failed to install custom smf password for user %s" % request.user)
logger.error("Failed to install custom SMF password for user %s" % request.user)
messages.error(request, _('An error occurred while processing your SMF account.'))
return redirect("services:services")
else:

View File

@ -5,7 +5,7 @@
{{ block.super }}
<li>
<a href="{% url 'teamspeak3:admin_update_ts3_groups' %}" class="btn btn-high">
{% translate "Update TS3 groups" %}
{% translate "Update TeamSpeak3 groups" %}
</a>
</li>
{% endblock %}

View File

@ -10,11 +10,11 @@
{% endblock %}
{% block active %}
<span class="badge {% if authinfo.teamspeak3_uid != '' %}bg-success{% else %}bg-warning{% endif %}">{% if authinfo.teamspeak3_uid != '' %}Active{% else %}Disabled{% endif %}</span>
{% include "services/service_status.html" with username=authinfo.teamspeak3_uid %}
{% endblock %}
{% block user %}
{{ authinfo.teamspeak3_uid }}
{% include "services/service_username.html" with username=authinfo.teamspeak3_uid %}
{% endblock %}
{% block controls %}

View File

@ -1,20 +1,20 @@
{% extends "allianceauth/base.html" %}
{% load bootstrap %}
{% extends "allianceauth/base-bs5.html" %}
{% load django_bootstrap5 %}
{% load i18n %}
{% block page_title %}{% translate "Verify Teamspeak" %}{% endblock page_title %}
{% block page_title %}{% translate "Verify TeamSpeak3" %}{% endblock page_title %}
{% block extra_css %}{% endblock extra_css %}
{% block content %}
<div class="col-lg-12">
<h1 class="page-header text-center">{% translate "Verify Teamspeak Identity" %}</h1>
<h1 class="page-header text-center">{% translate "Verify TeamSpeak3 Identity" %}</h1>
<div class="container-fluid">
<div class="col-md-4 col-md-offset-4">
<a href="ts3server://{{ public_url }}?token={{ authinfo.teamspeak3_perm_key }}&nickname={{ authinfo.teamspeak3_uid }}" class="btn btn-primary btn-block btn-lg" title="Join">{% translate "Join Server" %}</a>
<br>
<form class="form-signin" role="form" action="{% url 'teamspeak3:verify' %}" method="POST">
{% csrf_token %}
{{ form|bootstrap }}
{% bootstrap_form form %}
<br>
<button class="btn btn-lg btn-primary btn-block" type="submit">{% translate "Continue" %}</button>
</form>

View File

@ -24,17 +24,17 @@ def activate_teamspeak3(request):
character = request.user.profile.main_character
with Teamspeak3Manager() as ts3man:
logger.debug(f"Adding TS3 user for user {request.user} with main character {character}")
logger.debug(f"Adding TeamSpeak3 user for user {request.user} with main character {character}")
result = ts3man.add_user(request.user, Teamspeak3Tasks.get_username(request.user))
# if its empty we failed
if result[0] != "":
Teamspeak3User.objects.update_or_create(user=request.user, defaults={'uid': result[0], 'perm_key': result[1]})
logger.debug("Updated authserviceinfo for user %s with TS3 credentials. Updating groups." % request.user)
logger.info("Successfully activated TS3 for user %s" % request.user)
logger.debug("Updated authserviceinfo for user %s with TeamSpeak3 credentials. Updating groups." % request.user)
logger.info("Successfully activated TeamSpeak3 for user %s" % request.user)
messages.success(request, _('Activated TeamSpeak3 account.'))
return redirect("teamspeak3:verify")
logger.error("Unsuccessful attempt to activate TS3 for user %s" % request.user)
logger.error("Unsuccessful attempt to activate TeamSpeak3 for user %s" % request.user)
messages.error(request, _('An error occurred while processing your TeamSpeak3 account.'))
return redirect("services:services")
@ -67,10 +67,10 @@ def verify_teamspeak3(request):
def deactivate_teamspeak3(request):
logger.debug("deactivate_teamspeak3 called by user %s" % request.user)
if Teamspeak3Tasks.has_account(request.user) and Teamspeak3Tasks.delete_user(request.user):
logger.info("Successfully deactivated TS3 for user %s" % request.user)
logger.info("Successfully deactivated TeamSpeak3 for user %s" % request.user)
messages.success(request, _('Deactivated TeamSpeak3 account.'))
else:
logger.error("Unsuccessful attempt to deactivate TS3 for user %s" % request.user)
logger.error("Unsuccessful attempt to deactivate TeamSpeak3 for user %s" % request.user)
messages.error(request, _('An error occurred while processing your TeamSpeak3 account.'))
return redirect("services:services")
@ -81,7 +81,7 @@ def reset_teamspeak3_perm(request):
logger.debug("reset_teamspeak3_perm called by user %s" % request.user)
if not Teamspeak3Tasks.has_account(request.user):
return redirect("services:services")
logger.debug("Deleting TS3 user for user %s" % request.user)
logger.debug("Deleting TeamSpeak3 user for user %s" % request.user)
with Teamspeak3Manager() as ts3man:
ts3man.delete_user(request.user.teamspeak3.uid)
@ -91,12 +91,12 @@ def reset_teamspeak3_perm(request):
# if blank we failed
if result[0] != "":
Teamspeak3User.objects.update_or_create(user=request.user, defaults={'uid': result[0], 'perm_key': result[1]})
logger.debug("Updated authserviceinfo for user %s with TS3 credentials. Updating groups." % request.user)
logger.debug("Updated authserviceinfo for user %s with TeamSpeak3 credentials. Updating groups." % request.user)
Teamspeak3Tasks.update_groups.delay(request.user.pk)
logger.info("Successfully reset TS3 permission key for user %s" % request.user)
logger.info("Successfully reset TeamSpeak3 permission key for user %s" % request.user)
messages.success(request, _('Reset TeamSpeak3 permission key.'))
else:
logger.error("Unsuccessful attempt to reset TS3 permission key for user %s" % request.user)
logger.error("Unsuccessful attempt to reset TeamSpeak3 permission key for user %s" % request.user)
messages.error(request, _('An error occurred while processing your TeamSpeak3 account.'))
return redirect("services:services")
@ -105,5 +105,5 @@ def reset_teamspeak3_perm(request):
@staff_member_required
def admin_update_ts3_groups(request):
Teamspeak3Tasks.run_ts3_group_update.delay()
messages.info(request, "Started updating TS3 server groups...")
messages.info(request, "Started updating TeamSpeak3 server groups...")
return redirect("admin:teamspeak3_authts_changelist")

View File

@ -36,7 +36,7 @@ def activate_xenforo_forum(request):
context={'credentials': credentials, 'service': 'XenForo'})
else:
logger.error("Unsuccessful attempt to activate xenforo for user %s" % request.user)
logger.error("Unsuccessful attempt to activate XenForo for user %s" % request.user)
messages.error(request, _('An error occurred while processing your XenForo account.'))
return redirect("services:services")

View File

@ -1,5 +1,5 @@
{% extends "allianceauth/base-bs5.html" %}
{% load bootstrap %}
{% load django_bootstrap5 %}
{% load i18n %}
{% block page_title %}{% translate "Fleet Formatter Tool" %}{% endblock page_title %}
@ -18,7 +18,7 @@
{% endif %}
<form class="form-signin" role="form" action="" method="POST">
{% csrf_token %}
{{ form|bootstrap }}
{% bootstrap_form form %}
<br>
<button class="btn btn-lg btn-primary btn-block" type="submit">{% translate "Format" %}</button>
<br>

View File

@ -1,4 +1,4 @@
{% extends "allianceauth/base.html" %}
{% extends "allianceauth/base-bs5.html" %}
{% load i18n %}
@ -11,9 +11,9 @@
<h1 class="page-header text-center">
{% blocktranslate with service_name=view.service_name|title %}Delete {{ service_name }} Account?{% endblocktranslate %}
</h1>
<div class="container-fluid">
<div class="col-md-2 col-md-offset-5">
<div class="row">
<div class="container">
<div class="row justify-content-center">
<div class="col-md-4 align-self-center">
<form action="" method="post">
{% csrf_token %}
<p>

View File

@ -1,4 +1,4 @@
{% extends "allianceauth/base.html" %}
{% extends "allianceauth/base-bs5.html" %}
{% load i18n %}
{% block page_title %}{% blocktranslate with service_name=view.service_name|title %}{{ service_name }} Credentials{% endblocktranslate %}{% endblock page_title %}
@ -6,12 +6,13 @@
{% block content %}
<div class="col-lg-12">
<h1 class="page-header text-center">{% blocktranslate with service_name=view.service_name|title %}{{ service_name }} Credentials{% endblocktranslate %}</h1>
<div class="container-fluid">
<div class="col-lg-4 col-lg-offset-4">
<div class="container">
<div class="row justify-content-center">
<div class="col-md-4 align-self-center">
<form class="form-signin">
{% for key, value in credentials.items %}
<div class="form-group">
<label class="control-label" for="id_{{ key }}">{{ key|capfirst }}</label>
<div class="mb-3">
<label class="form-label" for="id_{{ key }}">{{ key|capfirst }}</label>
<input class="form-control" value="{{ value }}" id="id_{{ key }}" readonly>
</div>
{% endfor %}
@ -20,4 +21,5 @@
</div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,5 +1,5 @@
{% extends "allianceauth/base.html" %}
{% load bootstrap %}
{% extends "allianceauth/base-bs5.html" %}
{% load django_bootstrap5 %}
{% load i18n %}
{% block page_title %}{% blocktranslate with service_name=view.service_name|title %}{{ service_name }} Password Change{% endblocktranslate %}{% endblock page_title %}
@ -7,12 +7,12 @@
{% block content %}
<div class="col-lg-12">
<h1 class="page-header text-center">{% blocktranslate with service_name=view.service_name|title %}Set {{service_name}} Password{% endblocktranslate %}</h1>
<div class="container-fluid">
<div class="col-md-4 col-md-offset-4">
<div class="row">
<div class="container">
<div class="row justify-content-center">
<div class="col-md-4 align-self-center">
<form class="form-signin" role="form" action="" method="POST" onsubmit="submitbutton.disabled = true; return true;">
{% csrf_token %}
{{ form|bootstrap }}
{% bootstrap_form form %}
<br>
<button class="btn btn-lg btn-primary btn-block" name="submitbutton" type="submit">{% translate "Set Password" %}</button>
</form>
@ -20,5 +20,4 @@
</div>
</div>
</div>
{% endblock content %}

View File

@ -0,0 +1,9 @@
{% load i18n %}
<span class="badge {% if username != '' %}bg-success{% else %}bg-warning{% endif %}">
{% if username != '' %}
{% translate "Enabled" %}
{% else %}
{% translate "Disabled" %}
{% endif %}
</span>

View File

@ -0,0 +1,5 @@
{% load i18n %}
{% if username != '' %}
{% translate "Username" %}: {{ username }}
{% endif %}

View File

@ -14,7 +14,9 @@
{% endblock %}
{% block user %}
{% if username %}
Username: <span class="badge bg-secondary">{{ username }}</span>
{% endif %}
{% endblock %}
{% block controls %}

View File

@ -1,15 +1,29 @@
{% load i18n %}
<div class="card text-center m-4" style="min-width: 18rem; min-height: 18rem">
<div class="card-body">
<h5 class="card-title">{% block title %}{% endblock title %}</h5>
<p class="card-text">{% block url %}{% endblock url %}</p>
<p class="card-text">
{% block active %}
<span class="badge bg-success">Active</span>
{% include "services/service_status.html" with username=username %}
{% endblock active %}
</p>
<p class="card-text">{% block user %}{% endblock user %}</p>
<p class="card-text">
{% block url %}{% endblock url %}
</p>
<p class="card-text">
{% block user %}
{% include "services/service_username.html" with username=username %}
{% endblock user %}
</p>
{% block extra %}{% endblock extra %}
</div>
<div class="card-footer">{% block controls %}{% endblock controls %}</div>
<div class="card-footer">
{% block controls %}{% endblock controls %}
</div>
</div>