Compare commits

6 Commits

Author SHA1 Message Date
245679da83 update mode of docker-entrypoint if linux 2025-10-23 18:48:01 +02:00
a724d07b96 add all new migrations 2025-10-23 18:47:09 +02:00
e6b6bdbf12 fix condition :D 2025-10-23 18:31:41 +02:00
ec3c15e5a1 change url name 2025-10-23 18:14:33 +02:00
a3ffde3206 fix that you could not see the token in dark mode. 2025-10-23 18:12:51 +02:00
2b25ad30af add new rental rules 2025-10-23 17:47:30 +02:00
11 changed files with 204 additions and 39 deletions

View File

@@ -43,6 +43,9 @@ RUN mkdir -p ./etherpad
RUN touch ./etherpad/APIKEY.txt
RUN echo "haDF223lfaH79823qwSSdF" >> ./etherpad/APIKEY.txt
# Update the mode of the file in linux.
RUN if [ "$(uname -s)" = "Linux" ] && [ -f ./docker-entrypoint.sh ]; then chmod +x ./docker-entrypoint.sh; fi
EXPOSE 8000
ENTRYPOINT ["./docker-entrypoint.sh"]

View File

@@ -0,0 +1,50 @@
# Generated by Django 5.2.7 on 2025-10-23 16:25
import django.db.models.deletion
import finance.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('finance', '0003_alter_bill_bill_creator'),
]
operations = [
migrations.AddField(
model_name='bankdata',
name='address',
field=models.TextField(blank=True, verbose_name='Adresse'),
),
migrations.AlterField(
model_name='bill',
name='affiliation',
field=models.CharField(choices=[('V', 'Vereinsbudget'), ('B', 'Wiref-Budget'), ('R', 'Bundesvertretung')], max_length=1, verbose_name='Abrechnungsbudget'),
),
migrations.AlterField(
model_name='bill',
name='bankdata',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='finance.bankdata', verbose_name='Bankdaten'),
),
migrations.AlterField(
model_name='bill',
name='comment',
field=models.TextField(blank=True, default=''),
),
migrations.AlterField(
model_name='bill',
name='file_field',
field=models.FileField(blank=True, null=True, upload_to='uploads/finance/bills/', validators=[finance.validators.validate_bill_file_extension]),
),
migrations.AlterField(
model_name='bill',
name='status',
field=models.CharField(choices=[('S', 'Eingereicht'), ('I', 'Unvollständig / Abgelehnt'), ('C', 'Für Überweisung freigegeben'), ('F', 'Abgeschlossen / Überwiesen')], default='S', max_length=1, verbose_name='Status'),
),
migrations.AlterField(
model_name='wiref',
name='wiref_id',
field=models.CharField(blank=True, default='', max_length=10),
),
]

View File

@@ -0,0 +1,28 @@
# Generated by Django 5.2.7 on 2025-10-23 16:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('intern', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='attachment',
name='description',
field=models.TextField(blank=True, default=''),
),
migrations.AlterField(
model_name='topic',
name='description',
field=models.TextField(blank=True, default=''),
),
migrations.AlterField(
model_name='topicgroup',
name='short_description',
field=models.TextField(blank=True, default=''),
),
]

View File

@@ -0,0 +1,35 @@
# Generated by Django 5.2.7 on 2025-10-23 16:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('members', '0005_alter_job_options_job_order_alter_member_username'),
]
operations = [
migrations.RemoveField(
model_name='member',
name='address',
),
migrations.RemoveField(
model_name='member',
name='birthday',
),
migrations.RemoveField(
model_name='member',
name='phone',
),
migrations.AlterField(
model_name='jobgroup',
name='description',
field=models.TextField(blank=True, default=''),
),
migrations.AlterField(
model_name='member',
name='description',
field=models.TextField(blank=True, default=''),
),
]

View File

@@ -1,8 +1,9 @@
import logging
from django.shortcuts import render
from authentications.decorators import authenticated_user
from django.conf import settings
from django.conf import settings
from django.shortcuts import render
from authentications.decorators import authenticated_user
logger = logging.getLogger(__name__)
@@ -10,21 +11,18 @@ 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, ':')
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]))
str_token = token.hex()
return str_token
return token.hex()
@authenticated_user
def index(request):
username = request.user
context = {
"mctoken": "",
"valid_master_pwd": True
@@ -36,7 +34,7 @@ def index(request):
context["valid_master_pwd"] = False
logger.error("Masterpassword must be 32 characters long")
else:
token = create_token(str(username), masterpassword)
token = create_token(str(request.user), masterpassword)
context["mctoken"] = token
return render(request, "minecraft/index.html", context)

View File

@@ -0,0 +1,49 @@
# Generated by Django 5.2.7 on 2025-10-23 16:25
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('posts', '0005_remove_post_is_hidden'),
]
operations = [
migrations.RemoveField(
model_name='post',
name='imported_from',
),
migrations.RemoveField(
model_name='post',
name='legacy_rubrik_id',
),
migrations.AlterField(
model_name='post',
name='agenda_key',
field=models.CharField(blank=True, default='', max_length=200),
),
migrations.AlterField(
model_name='post',
name='body',
field=models.TextField(blank=True, default=''),
),
migrations.AlterField(
model_name='post',
name='event_place',
field=models.CharField(blank=True, default='', max_length=200),
),
migrations.AlterField(
model_name='post',
name='protocol_key',
field=models.CharField(blank=True, default='', max_length=200),
),
migrations.AlterField(
model_name='post',
name='subtitle',
field=models.CharField(blank=True, default='', max_length=500),
),
migrations.DeleteModel(
name='Category',
),
]

View File

@@ -7,7 +7,7 @@ app_name = apps.RentalConfig.name
urlpatterns = [
path("rental_calendar.ics", views.rental_calendar, name="calendar"),
path("rental/", RentalListView.as_view(), name="index"),
path("overview/", RentalListView.as_view(), name="index"),
path("request-rental/", RentalCreateView.as_view(), name="rental_create"),
path(
"request-rental/<int:pk>/done/",

View File

@@ -9,13 +9,15 @@
<div class="container mx-auto w-full px-4 my-8 flex-1">
<h1 class="page-title">Minecraft</h1>
<div class="flex flex-col gap-y-8 max-w-prose mx-auto text-gray-700 dark:text-gray-300">
{% if valid_master_pwd %}
<h2>Dein persömlicher Token für den Minecraft-Server:</h2>
<p>{{ mctoken }}</p>
<p>Dein persönlicher Token für den Minecraft-Server: {{ mctoken }}</p>
{% else %}
<h2>Ups... Das hat nicht geklappt!</h2>
<p>Bitte informiere einen Admin!</p>
<p>Ups... Das hat nicht geklappt! Bitte informiere einen Admin!</p>
{% endif %}
</div>
</div>
</main>
{% endblock %}
{% endblock content %}