diff --git a/docker-compose.yml b/docker-compose.yml index cd60f77c99f8e595b2f6863148b90c4cd15c35aa..591ac2d8a469f3eb2e5bc528e5b421501853af3e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -14,8 +14,10 @@ services: entrypoint: /opt/entrypoint_dev.sh depends_on: - ldap + - mysql links: - ldap + - mysql mysql: image: mariadb:latest diff --git a/www/Dockerfile b/www/Dockerfile index b67b34e67caa34234c8db9e1ea8df1887cf6a09f..289e167a7886fc40c99e512197864e5f08d324e2 100644 --- a/www/Dockerfile +++ b/www/Dockerfile @@ -51,6 +51,11 @@ RUN chmod +x /opt/entrypoint* ADD web /opt/warpinfra/ ADD nginx /opt/nginx +RUN apt-get update && apt-get install -y libmysqlclient-dev +RUN pip3 install django-mysql mysqlclient + + + EXPOSE 8000 443 80 VOLUME ["/opt/nginx", "/opt/warpinfra"] diff --git a/www/web/warppay/views.py b/www/web/warppay/views.py index 4bc40c716ac9f20704f702212911abd58dc6c6ae..91c7908716a3f082d53288978c2b5e30a42a5501 100644 --- a/www/web/warppay/views.py +++ b/www/web/warppay/views.py @@ -55,12 +55,15 @@ def user_list(request, user_id = 0): user = UserCredit.objects.get(uid=user_id) if "credit" in request.data: user.credit = request.data['credit'] - if "card_id" in request.data: + elif "card_id" in request.data: # ToDo: Diskussion: Direkt Karte Ändern? try: ldap_user = LdapUser.objects.get(uid=str(request.data['uid'])) - ldap_user.card_id = request.data['card_id'] - ldap_user.save() + if not ldap_user.card_id: + ldap_user.card_id = request.data['card_id'] + ldap_user.save() + else: + return Response(status=status.HTTP_403_FORBIDDEN) except: pass user.card_id = request.data['card_id'] @@ -92,7 +95,6 @@ def user_list(request, user_id = 0): def sync_users(): for user in LdapUser.objects.all(): - print(user) try: u = UserCredit.objects.get(uid=user.uid) if user.card_id: diff --git a/www/web/warpzone/settings.py b/www/web/warpzone/settings.py index e01782d0db217271ebfa204c2bb60a50325bd234..b0f7bb2619149f419d8981f987878bae98e620a7 100644 --- a/www/web/warpzone/settings.py +++ b/www/web/warpzone/settings.py @@ -15,6 +15,13 @@ config.read('/etc/warpinfra/config.ini') # COMMON APPS = [app.strip() for app in config.get('common','APPS').split(",")] +# MYSQL +MYSQL_HOST = config.get('mysql','MYSQL_HOST') +MYSQL_PORT = config.get('mysql','MYSQL_PORT') +MYSQL_USER = config.get('mysql','MYSQL_USER') +MYSQL_PASS = config.get('mysql','MYSQL_PASS') +MYSQL_NAME = config.get('mysql','MYSQL_NAME') + # LDAP LDAP_HOST = "ldap://"+config.get('ldap','LDAP_HOST') LDAP_BIND_DN = config.get('ldap','LDAP_BIND_DN') @@ -67,6 +74,7 @@ INSTALLED_APPS = [ 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', + 'django_mysql', 'bootstrapform', 'bootstrap3_datetime', 'rest_framework', @@ -118,10 +126,24 @@ LOCALE_PATHS = ( # https://docs.djangoproject.com/en/1.8/ref/settings/#databases DATABASES = { + 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': '/opt/database/warpzone.db' + 'ENGINE': 'django.db.backends.mysql', + 'NAME': MYSQL_NAME, + 'USER': MYSQL_USER, + 'PASSWORD': MYSQL_PASS, + 'HOST': MYSQL_HOST, + 'PORT': MYSQL_PORT, + 'OPTIONS': { + 'init_command': "SET sql_mode='STRICT_TRANS_TABLES', innodb_strict_mode=1", + 'charset': 'utf8mb4', + }, }, + +# 'default': { +# 'ENGINE': 'django.db.backends.sqlite3', +# 'NAME': '/opt/database/warpzone.db' +# }, 'ldap': { 'ENGINE': 'ldapdb.backends.ldap', 'NAME': LDAP_HOST,