Skip to content
Snippets Groups Projects
Commit 367975f5 authored by Szenes Márton Miklós's avatar Szenes Márton Miklós
Browse files

Config.py reqork, minor fX-es

parent 8e8e8c0d
No related branches found
No related tags found
No related merge requests found
Pipeline #52125 passed
...@@ -104,6 +104,7 @@ app.register_blueprint(users, url_prefix= API_PREFIX + users.url_prefix) ...@@ -104,6 +104,7 @@ app.register_blueprint(users, url_prefix= API_PREFIX + users.url_prefix)
app.register_blueprint(items, url_prefix= API_PREFIX + items.url_prefix) app.register_blueprint(items, url_prefix= API_PREFIX + items.url_prefix)
app.register_blueprint(transactions, url_prefix= API_PREFIX + transactions.url_prefix) app.register_blueprint(transactions, url_prefix= API_PREFIX + transactions.url_prefix)
from .models import BECSKASSZA_BOT, DEFAULT_ICON, TOPUP_ICON, TOPUP_ITEM, BUY_ITEM
# === Adatbázis inizializálása === # === Adatbázis inizializálása ===
with app.app_context(): # Kontextus beállítása with app.app_context(): # Kontextus beállítása
......
...@@ -34,6 +34,23 @@ ALLOWED_ACCESS_DIRECTORY_GROUPS = [KSZK_MEMBER, KSZK_ROOKIES] ...@@ -34,6 +34,23 @@ ALLOWED_ACCESS_DIRECTORY_GROUPS = [KSZK_MEMBER, KSZK_ROOKIES]
# Endpoint handeler blueprint létrehozása # Endpoint handeler blueprint létrehozása
auth_requests = Blueprint('auth', __name__) auth_requests = Blueprint('auth', __name__)
# AuthSCH hitelesítéshez szükséges környezeti változók ellenőrzése
def check_authsch_env_vars():
"""
Ellenőrzi, hogy az AuthSCH hitelesítéshez szükséges környezeti változók meg vannak-e adva.
Ha nincsenek megadva, akkor hibát dob.
"""
if AUTH_SCH_CLIENT_ID == '' or AUTH_SCH_CLIENT_SECRET == '':
raise ValueError("Nincsenek megadva az AuthSCH autentikációhoz szükséges környezeti változók!")
if AUTH_SCH_REDIRECT_URI == '':
raise ValueError("Nincsen megadva az AuthSCH redirect URI környezeti változó!")
# AuthSCH hitelesítéshez szükséges környezeti változók ellenőrzése
try:
check_authsch_env_vars()
except ValueError as e:
print(f"Error: AuthSCH környezeti változók ellenőrzésekor: {e}")
# Bejelentkezési kérés átirányítás AuthSCH-ra # Bejelentkezési kérés átirányítás AuthSCH-ra
@auth_requests.route('/login') @auth_requests.route('/login')
......
# === Konstansok === # === Konstansok ===
import os import os
from app.models import *
from dotenv import load_dotenv from dotenv import load_dotenv
from enum import Enum from enum import Enum
...@@ -49,54 +48,7 @@ USER_CREDIT = 0 #5_000 ...@@ -49,54 +48,7 @@ USER_CREDIT = 0 #5_000
ADMIN_CREDIT = 0 #15_000 ADMIN_CREDIT = 0 #15_000
TRANSACTION_AMOUNT_LIMIT = 100_000 TRANSACTION_AMOUNT_LIMIT = 100_000
DEFAULT_UNIT = 'db' # Az alapvető mértékenysége a terméknek DEFAULT_UNIT = 'db' # Az alapvető mértékenysége a terméknek
DEFAULT_ICON_ID = 1
# Ez az ID szám alatt nem lesznek kilistázva a dolgok # Ez az ID szám alatt nem lesznek kilistázva a dolgok
NON_DISPLAY_BELLOW_ID = 0 NON_DISPLAY_BELLOW_ID = 0
# Becskassza dummy Felhasználó
BECSKASSZA_BOT = User(
uuid='B3C5K4SS24-B0T-M452T3R',
name='BecskasszaBot',
balance=0,
credit=0,
role=Roles.Bot.value
)
# Pénz Feltöltés ikon
TOPUP_ICON_URL = 'imgs/kszkoin.svg'
TOPUP_ICON = Icon (
id=0,
name='Feltöltés',
url=TOPUP_ICON_URL,
data=open(DEFAULT_STATIC_FOLDER + TOPUP_ICON_URL, "rb").read()
)
# Alap ikon a termékekhez ha nem adnak meg ikont
DEFAULT_ICON_URL = 'imgs/drink.png'
DEFAULT_ICON = Icon (
id=1,
name='Alap ikon',
url=DEFAULT_ICON_URL,
data=open(DEFAULT_STATIC_FOLDER + DEFAULT_ICON_URL, "rb").read()
)
# Feltöltés termék
TOPUP_ITEM = Item (
id=0,
name='Feltöltés',
price=1,
unit='',
icon_id=TOPUP_ICON.id,
stock=ItemStates.INACTIVE.value
)
# Ha törlődnik egy termék, akkor minden ahhoz kapcsolódó tranzakció ehhez a default vásárlás termékre fog átállni
BUY_ITEM = Item (
id=-1,
name='Vásárlás',
price=1,
unit='',
icon_id=DEFAULT_ICON.id,
stock=ItemStates.INACTIVE.value
)
\ No newline at end of file
...@@ -3,7 +3,7 @@ from flask_login import UserMixin ...@@ -3,7 +3,7 @@ from flask_login import UserMixin
from sqlalchemy.sql import func from sqlalchemy.sql import func
from .database import db from .database import db
from .config import * from .config import DEFAULT_ICON_ID, DEFAULT_STATIC_FOLDER, USER_CREDIT, ItemStates, Roles
# Ikon osztály # Ikon osztály
class Icon(db.Model): class Icon(db.Model):
...@@ -33,8 +33,8 @@ class Item(db.Model): ...@@ -33,8 +33,8 @@ class Item(db.Model):
id = db.Column(db.Integer, primary_key=True) # Automatikusan generált id id = db.Column(db.Integer, primary_key=True) # Automatikusan generált id
name = db.Column(db.String(150), nullable=False) # Termék neve name = db.Column(db.String(150), nullable=False) # Termék neve
price = db.Column(db.Integer, nullable=False) # Termék ára price = db.Column(db.Integer, nullable=False) # Termék ára
unit = db.Column(db.String(10), nullable=False, default=DEFAULT_UNIT) # Termék mértékegysége unit = db.Column(db.String(10), nullable=False) # Termék mértékegysége
stock = db.Column(db.Integer, default=ItemStates.SOLD_OUT) # Termék készlete (alapból nincs készleten) stock = db.Column(db.Integer, default=ItemStates.SOLD_OUT.value) # Termék készlete (alapból nincs készleten)
icon_id = db.Column(db.Integer, db.ForeignKey('icons.id'), default=DEFAULT_ICON_ID) # Termék ikon-ra hivatkozó id-ja icon_id = db.Column(db.Integer, db.ForeignKey('icons.id'), default=DEFAULT_ICON_ID) # Termék ikon-ra hivatkozó id-ja
# Kapcsolt mező # Kapcsolt mező
icon = db.relationship('Icon') # Referencia az ikonra (Adatbázisban nem jelenik meg) icon = db.relationship('Icon') # Referencia az ikonra (Adatbázisban nem jelenik meg)
...@@ -114,3 +114,52 @@ class Transaction(db.Model): ...@@ -114,3 +114,52 @@ class Transaction(db.Model):
"amount": self.amount, "amount": self.amount,
"quantity": self.quantity "quantity": self.quantity
} }
# === Alap objektumok ===
TOPUP_ICON_URL = 'imgs/kszkoin.svg'
DEFAULT_ICON_URL = 'imgs/drink.png'
# Becskassza dummy Felhasználó
BECSKASSZA_BOT = User(
uuid='B3C5K4SS24-B0T-M452T3R',
name='BecskasszaBot',
balance=0,
credit=0,
role=Roles.Bot.value
)
# Pénz Feltöltés ikon
TOPUP_ICON = Icon (
id=0,
name='Feltöltés',
url=TOPUP_ICON_URL,
data=open(DEFAULT_STATIC_FOLDER + TOPUP_ICON_URL, "rb").read()
)
# Alap ikon a termékekhez ha nem adnak meg ikont
DEFAULT_ICON = Icon (
id=1,
name='Alap ikon',
url=DEFAULT_ICON_URL,
data=open(DEFAULT_STATIC_FOLDER + DEFAULT_ICON_URL, "rb").read()
)
# Feltöltés termék
TOPUP_ITEM = Item (
id=0,
name='Feltöltés',
price=1,
unit='',
icon_id=TOPUP_ICON.id,
stock=ItemStates.INACTIVE.value
)
# Ha törlődnik egy termék, akkor minden ahhoz kapcsolódó tranzakció ehhez a default vásárlás termékre fog átállni
BUY_ITEM = Item (
id=-1,
name='Vásárlás',
price=1,
unit='',
icon_id=DEFAULT_ICON.id,
stock=ItemStates.INACTIVE.value
)
\ No newline at end of file
...@@ -10,7 +10,7 @@ from sqlalchemy.orm import aliased ...@@ -10,7 +10,7 @@ from sqlalchemy.orm import aliased
from .token import * from .token import *
from .models import Icon, User, Item, Transaction from .models import BECSKASSZA_BOT, Icon, User, Item, Transaction
from .role import * from .role import *
from .database import db from .database import db
from .config import * from .config import *
...@@ -132,7 +132,7 @@ def admin(): ...@@ -132,7 +132,7 @@ def admin():
- jwtCookieAuth: [] - jwtCookieAuth: []
""" """
current_user = get_current_user() current_user = get_current_user()
user_list = User.query.filter(User.uuid != BOT_USER_UUID).all() user_list = User.query.filter(User.uuid != BECSKASSZA_BOT.uuid).all()
users = user_list users = user_list
count_users = len(users) count_users = len(users)
...@@ -210,7 +210,7 @@ def users(): ...@@ -210,7 +210,7 @@ def users():
# A keresett felhasználók nevének kiolvasása a kérésből # A keresett felhasználók nevének kiolvasása a kérésből
search_field = request.args.get('search-field', '').lower() search_field = request.args.get('search-field', '').lower()
users = User.query.filter(User.uuid != BOT_USER_UUID) users = User.query.filter(User.uuid != BECSKASSZA_BOT.uuid)
users_results = [u for u in users if search_field in u.name.lower()] users_results = [u for u in users if search_field in u.name.lower()]
# A keresett felhasználók rendezése név szerint # A keresett felhasználók rendezése név szerint
users_ordered = sorted(users_results if search_field else users, key=lambda u: u.name) users_ordered = sorted(users_results if search_field else users, key=lambda u: u.name)
......
...@@ -29,7 +29,9 @@ ...@@ -29,7 +29,9 @@
<div class="d-block ms-2 text-start"> <div class="d-block ms-2 text-start">
<h4>{{ transaction.item.name }}</h4> <h4>{{ transaction.item.name }}</h4>
{% if transaction.to_user_uuid != transaction.by_user_uuid %} {% if transaction.to_user_uuid != transaction.by_user_uuid %}
<span class="small">(by: {{ transaction.by_user.name }})</span> <br> {% endif %} <span class="small"> -> {{ transaction.by_user.name }} </span> <br>
{% endif %}
<span class="small"> Note: {{ transaction.note }}</span> <br>
<span>Összeg: {{ transaction.amount }} JMF</span> <br> <span>Összeg: {{ transaction.amount }} JMF</span> <br>
<span>Időbélyeg: {{ transaction.date.strftime('%Y.%m.%d. %H:%M') }}</span> <span>Időbélyeg: {{ transaction.date.strftime('%Y.%m.%d. %H:%M') }}</span>
</div> </div>
......
...@@ -6,7 +6,7 @@ from flask import Blueprint, request, jsonify, Response, redirect, url_for ...@@ -6,7 +6,7 @@ from flask import Blueprint, request, jsonify, Response, redirect, url_for
from .functions import validate_json_fields from .functions import validate_json_fields
from .token import get_current_user, token_required from .token import get_current_user, token_required
from .database import db from .database import db
from .models import User, Item, Transaction from .models import TOPUP_ITEM, User, Item, Transaction
from .config import * from .config import *
USER_DOES_NOT_EXISTS_MESSAGE = 'Nem létezik ilyen felhasználó!' USER_DOES_NOT_EXISTS_MESSAGE = 'Nem létezik ilyen felhasználó!'
...@@ -41,7 +41,7 @@ def topup_to_user(selected_user_uuid, amount): ...@@ -41,7 +41,7 @@ def topup_to_user(selected_user_uuid, amount):
topup_transaction = Transaction( topup_transaction = Transaction(
by_user_uuid = admin_user.uuid, by_user_uuid = admin_user.uuid,
to_user_uuid = selected_user_uuid, to_user_uuid = selected_user_uuid,
item_id = TOPUP_ITEM_ID, item_id = TOPUP_ITEM.id,
amount = amount, amount = amount,
quantity = 1 quantity = 1
) # quantity=1 (default) ) # quantity=1 (default)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment