barker/barker/barker/subscribers.py

11 lines
441 B
Python

from pyramid.events import subscriber, NewRequest
from pyramid.httpexceptions import HTTPServiceUnavailable
from barker.models.master import DbSetting
@subscriber(NewRequest)
def maintenance_mode(event):
maintenance = event.request.dbsession.query(DbSetting).filter(DbSetting.name == "Maintenance").first()
if maintenance is not None and maintenance.data != event.request.authenticated_userid:
raise HTTPServiceUnavailable