Files
fet2020/fet2020/minecraft/views.py

38 lines
1.0 KiB
Python

import logging
from django.conf import settings
from django.shortcuts import render
from authentications.decorators import authenticated_user
logger = logging.getLogger(__name__)
# Function that generates a token depending on unsername and masterpassword
# The masterpassword must be 32 characters long!
def create_token(username, masterpassword):
padded_username = username.ljust(32, ":")
token = bytearray()
# xor connect with masterpassword to create token
for i in range(32):
token.append(ord(padded_username[i]) ^ ord(masterpassword[i]))
return token.hex()
@authenticated_user
def index(request):
context = {"mctoken": "", "valid_master_pwd": True}
masterpassword = settings.MC_MASTERPASSWORD
if len(masterpassword) != 32:
context["valid_master_pwd"] = False
logger.error("Masterpassword must be 32 characters long")
else:
token = create_token(str(request.user), masterpassword)
context["mctoken"] = token
return render(request, "minecraft/index.html", context)