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 passlib.hash import bcrypt_sha256
|
||||||
from hashlib import sha1
|
from hashlib import sha1
|
||||||
|
|
||||||
import django # noqa
|
import django
|
||||||
import os # noqa
|
from django.utils.datetime_safe import datetime
|
||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
sys.path.append(os.getcwd())
|
sys.path.append(os.getcwd())
|
||||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myauth.settings.local") # noqa
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myauth.settings.local")
|
||||||
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true" # noqa
|
os.environ["DJANGO_ALLOW_ASYNC_UNSAFE"] = "true"
|
||||||
django.setup() # noqa
|
django.setup()
|
||||||
from django.utils.datetime_safe import datetime
|
|
||||||
|
|
||||||
from allianceauth import __version__
|
from allianceauth import __version__ # noqa
|
||||||
from allianceauth.services.modules.mumble.models import MumbleServerServer, MumbleUser
|
from allianceauth.services.modules.mumble.models import MumbleServerServer, MumbleUser, TempUser # noqa
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
@ -293,22 +293,48 @@ def main() -> None:
|
|||||||
mumble_user.version = user.version
|
mumble_user.version = user.version
|
||||||
mumble_user.last_connect = datetime.now()
|
mumble_user.last_connect = datetime.now()
|
||||||
mumble_user.save()
|
mumble_user.save()
|
||||||
except Exception as e:
|
except MumbleUser.DoesNotExist as a:
|
||||||
logger.error(e)
|
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:
|
def userDisconnected(self, user, current=None) -> None:
|
||||||
try:
|
try:
|
||||||
mumble_user = MumbleUser.objects.get(username=user)
|
mumble_user = MumbleUser.objects.get(username=user)
|
||||||
mumble_user.last_disconnect = datetime.now()
|
mumble_user.last_disconnect = datetime.now()
|
||||||
mumble_user.save()
|
mumble_user.save()
|
||||||
except Exception as e:
|
except MumbleUser.DoesNotExist as a:
|
||||||
logger.error(e)
|
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:
|
def userStateChanged(self, user, current=None) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def userTextMessage(self, user, text_message=None) -> None:
|
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:
|
def channelCreated(self, channel, current=None) -> None:
|
||||||
pass
|
pass
|
||||||
@ -340,13 +366,16 @@ def main() -> None:
|
|||||||
try:
|
try:
|
||||||
mumble_user = MumbleUser.objects.get(username=name)
|
mumble_user = MumbleUser.objects.get(username=name)
|
||||||
except MumbleUser.DoesNotExist:
|
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)
|
logger.debug("checking password with hash function: %s" % mumble_user.hashfn)
|
||||||
if allianceauth_check_hash(pw, mumble_user.pwhash, 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())
|
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(
|
logger.info(
|
||||||
f'Failed authentication attempt for user: {name} {mumble_user.user_id + MumbleServerServer.objects.get(id=1).offset}')
|
f'Failed authentication attempt for user: {name} {mumble_user.user_id + MumbleServerServer.objects.get(id=1).offset}')
|
||||||
return (AUTH_REFUSED, None, None)
|
return (AUTH_REFUSED, None, None)
|
||||||
@ -374,7 +403,10 @@ def main() -> None:
|
|||||||
try:
|
try:
|
||||||
return (MumbleUser.objects.get(username=name).pk + MumbleServerServer.objects.get(id=1).offset)
|
return (MumbleUser.objects.get(username=name).pk + MumbleServerServer.objects.get(id=1).offset)
|
||||||
except MumbleUser.DoesNotExist:
|
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("")
|
@fortifyIceFu("")
|
||||||
@checkSecret
|
@checkSecret
|
||||||
@ -387,12 +419,17 @@ def main() -> None:
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
mumble_user = MumbleUser.objects.get(user_id=id - MumbleServerServer.objects.get(id=1).offset)
|
mumble_user = MumbleUser.objects.get(user_id=id - MumbleServerServer.objects.get(id=1).offset)
|
||||||
|
mumble_user.username
|
||||||
except MumbleUser.DoesNotExist:
|
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
|
# I dont quite rightly know why we have this
|
||||||
# SuperUser shouldnt be in our Authenticator?
|
# 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":
|
if MumbleUser.objects.get(user_id=id - MumbleServerServer.objects.get(id=1).offset).username == "SuperUser":
|
||||||
logger.debug('idToName %d -> "SuperUser" caught')
|
logger.debug('idToName %d -> "SuperUser" caught')
|
||||||
return "" # FALL_THROUGH
|
return "" # FALL_THROUGH
|
||||||
|
Loading…
x
Reference in New Issue
Block a user