mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-09 04:20:17 +02:00
add TempUser to more authenticator functions
This commit is contained in:
parent
168e6cc290
commit
d09892397b
@ -41,19 +41,19 @@ from threading import Timer
|
||||
from passlib.hash import bcrypt_sha256
|
||||
from hashlib import sha1
|
||||
|
||||
import django # noqa
|
||||
import os # noqa
|
||||
import django
|
||||
from django.utils.datetime_safe import datetime
|
||||
import os
|
||||
import sys
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
sys.path.append(os.getcwd())
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myauth.settings.local") # noqa
|
||||
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true" # noqa
|
||||
django.setup() # noqa
|
||||
from django.utils.datetime_safe import datetime
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myauth.settings.local")
|
||||
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
|
||||
django.setup()
|
||||
|
||||
from allianceauth import __version__
|
||||
from allianceauth.services.modules.mumble.models import MumbleServerServer, MumbleUser
|
||||
from allianceauth import __version__ # noqa
|
||||
from allianceauth.services.modules.mumble.models import MumbleServerServer, MumbleUser, TempUser # noqa
|
||||
|
||||
|
||||
def main() -> None:
|
||||
@ -293,22 +293,48 @@ def main() -> None:
|
||||
mumble_user.version = user.version
|
||||
mumble_user.last_connect = datetime.now()
|
||||
mumble_user.save()
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
except MumbleUser.DoesNotExist as a:
|
||||
try:
|
||||
mumble_user = TempUser.objects.get(username=user)
|
||||
mumble_user.release = user.release
|
||||
mumble_user.version = user.version
|
||||
mumble_user.last_connect = datetime.now()
|
||||
mumble_user.save()
|
||||
except Exception as b:
|
||||
logger.exception(a)
|
||||
logger.exception(b)
|
||||
|
||||
def userDisconnected(self, user, current=None) -> None:
|
||||
try:
|
||||
mumble_user = MumbleUser.objects.get(username=user)
|
||||
mumble_user.last_disconnect = datetime.now()
|
||||
mumble_user.save()
|
||||
except Exception as e:
|
||||
logger.error(e)
|
||||
except MumbleUser.DoesNotExist as a:
|
||||
try:
|
||||
mumble_user = TempUser.objects.get(username=user)
|
||||
mumble_user.last_disconnect = datetime.now()
|
||||
mumble_user.save()
|
||||
except Exception as b:
|
||||
logger.exception(a)
|
||||
logger.exception(b)
|
||||
|
||||
def userStateChanged(self, user, current=None) -> None:
|
||||
pass
|
||||
|
||||
def userTextMessage(self, user, text_message=None) -> None:
|
||||
pass
|
||||
if text_message.text == "!kicktemps":
|
||||
if self.server.hasPermission(user.session, 0, 0x10000):
|
||||
self.server.sendMessage(user.session, "Kicking all templink clients!")
|
||||
|
||||
users = self.server.getUsers()
|
||||
for (userid, auser) in users.items():
|
||||
if auser.userid > (MumbleServerServer.objects.get(id=1).offset * 2):
|
||||
self.server.kickUser(auser.session, "Kicking all temp users! :-)")
|
||||
|
||||
self.server.sendMessage(user.session, "All templink clients kicked!")
|
||||
|
||||
else:
|
||||
self.server.sendMessage(user.session, "You do not have kick permissions!")
|
||||
|
||||
def channelCreated(self, channel, current=None) -> None:
|
||||
pass
|
||||
@ -340,13 +366,16 @@ def main() -> None:
|
||||
try:
|
||||
mumble_user = MumbleUser.objects.get(username=name)
|
||||
except MumbleUser.DoesNotExist:
|
||||
return (-2, None, None)
|
||||
try:
|
||||
mumble_user = TempUser.objects.get(username=name)
|
||||
except TempUser.DoesNotExist:
|
||||
return (-2, None, None) # No Standard or Temp User
|
||||
|
||||
logger.debug("checking password with hash function: %s" % mumble_user.hashfn)
|
||||
if allianceauth_check_hash(pw, mumble_user.pwhash, mumble_user.hashfn):
|
||||
logger.info(f'User authenticated: {mumble_user.get_display_name()} {mumble_user.user_id + MumbleServerServer.objects.get(id=1).offset}')
|
||||
logger.info(f'User authenticated: {mumble_user.display_name} {mumble_user.user_id + MumbleServerServer.objects.get(id=1).offset}')
|
||||
logger.debug("Group memberships: %s", mumble_user.group_string())
|
||||
return (mumble_user.user_id + MumbleServerServer.objects.get(id=1).offset, mumble_user.get_display_name(), mumble_user.group_string())
|
||||
return (mumble_user.user_id + MumbleServerServer.objects.get(id=1).offset, mumble_user.display_name, mumble_user.group_string())
|
||||
logger.info(
|
||||
f'Failed authentication attempt for user: {name} {mumble_user.user_id + MumbleServerServer.objects.get(id=1).offset}')
|
||||
return (AUTH_REFUSED, None, None)
|
||||
@ -374,7 +403,10 @@ def main() -> None:
|
||||
try:
|
||||
return (MumbleUser.objects.get(username=name).pk + MumbleServerServer.objects.get(id=1).offset)
|
||||
except MumbleUser.DoesNotExist:
|
||||
return -2 # FALL_THROUGH
|
||||
try:
|
||||
return (TempUser.objects.get(username=name).pk + MumbleServerServer.objects.get(id=1).offset * 2)
|
||||
except TempUser.DoesNotExist:
|
||||
return -2 # FALL_THROUGH
|
||||
|
||||
@fortifyIceFu("")
|
||||
@checkSecret
|
||||
@ -387,12 +419,17 @@ def main() -> None:
|
||||
|
||||
try:
|
||||
mumble_user = MumbleUser.objects.get(user_id=id - MumbleServerServer.objects.get(id=1).offset)
|
||||
mumble_user.username
|
||||
except MumbleUser.DoesNotExist:
|
||||
return "" # FALL_THROUGH
|
||||
try:
|
||||
mumble_user = TempUser.objects.get(user_id=id - MumbleServerServer.objects.get(id=1).offset * 2)
|
||||
mumble_user.username
|
||||
except TempUser.DoesNotExist:
|
||||
return "" # FALL_THROUGH
|
||||
|
||||
# I dont quite rightly know why we have this
|
||||
# SuperUser shouldnt be in our Authenticator?
|
||||
# But Maybe it can be
|
||||
# But Maybe it can be?
|
||||
if MumbleUser.objects.get(user_id=id - MumbleServerServer.objects.get(id=1).offset).username == "SuperUser":
|
||||
logger.debug('idToName %d -> "SuperUser" caught')
|
||||
return "" # FALL_THROUGH
|
||||
|
Loading…
x
Reference in New Issue
Block a user