|
18 | 18 | from flask_login import current_user |
19 | 19 | from flask_jwt_extended import JWTManager |
20 | 20 | from flask_limiter import Limiter |
| 21 | +from flask_limiter.util import get_ipaddr |
21 | 22 | from datetime import timedelta |
22 | 23 | from flask_cors import CORS |
23 | 24 | from flask_rest_jsonapi.errors import jsonapi_errors |
|
40 | 41 | from app.api.helpers.auth import AuthManager, is_token_blacklisted |
41 | 42 | from app.api.helpers.scheduled_jobs import send_after_event_mail, send_event_fee_notification, \ |
42 | 43 | send_event_fee_notification_followup, change_session_state_on_event_completion, \ |
43 | | - expire_pending_tickets, send_monthly_event_invoice, event_invoices_mark_due |
| 44 | + expire_pending_tickets, send_monthly_event_invoice, event_invoices_mark_due, \ |
| 45 | + delete_ticket_holders_no_order_id |
44 | 46 | from app.models.event import Event |
45 | 47 | from app.models.role_invite import RoleInvite |
46 | 48 | from app.views.healthcheck import health_check_celery, health_check_db, health_check_migrations, check_migrations |
|
49 | 51 | from app.views.redis_store import redis_store |
50 | 52 | from app.views.celery_ import celery |
51 | 53 | from app.templates.flask_ext.jinja.filters import init_filters |
| 54 | +from app.extensions import shell |
52 | 55 |
|
53 | 56 |
|
54 | 57 | BASE_DIR = os.path.dirname(os.path.abspath(__file__)) |
55 | 58 |
|
56 | 59 | static_dir = os.path.dirname(os.path.dirname(__file__)) + "/static" |
57 | 60 | template_dir = os.path.dirname(__file__) + "/templates" |
58 | 61 | app = Flask(__name__, static_folder=static_dir, template_folder=template_dir) |
59 | | -limiter = Limiter(app) |
| 62 | +limiter = Limiter(app, key_func=get_ipaddr) |
60 | 63 | env.read_envfile() |
61 | 64 |
|
62 | 65 |
|
@@ -196,6 +199,8 @@ def create_app(): |
196 | 199 | # redis |
197 | 200 | redis_store.init_app(app) |
198 | 201 |
|
| 202 | + shell.init_app(app) |
| 203 | + |
199 | 204 | # elasticsearch |
200 | 205 | if app.config['ENABLE_ELASTICSEARCH']: |
201 | 206 | client.init_app(app) |
@@ -270,6 +275,7 @@ def update_sent_state(sender=None, headers=None, **kwargs): |
270 | 275 | scheduler.add_job(expire_pending_tickets, 'cron', minute=45) |
271 | 276 | scheduler.add_job(send_monthly_event_invoice, 'cron', day=1, month='1-12') |
272 | 277 | scheduler.add_job(event_invoices_mark_due, 'cron', hour=5) |
| 278 | +scheduler.add_job(delete_ticket_holders_no_order_id, 'cron', minute=5) |
273 | 279 | scheduler.start() |
274 | 280 |
|
275 | 281 |
|
|
0 commit comments