Make it possible to set the instance admin
This commit is contained in:
@@ -19,8 +19,10 @@
|
||||
|
||||
from datetime import datetime
|
||||
import os
|
||||
from warnings import warn
|
||||
|
||||
from flask import Flask, abort, current_app, redirect, render_template, request, url_for
|
||||
from flask import Flask, abort, current_app, has_app_context, redirect, render_template, request, \
|
||||
url_for
|
||||
from flask_babelex import Babel, get_locale as babel_get_locale
|
||||
from flask_security import SQLAlchemyUserDatastore, current_user, login_required
|
||||
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
|
||||
@@ -127,9 +129,6 @@ class CalendarSocialApp(Flask, RoutedMixin):
|
||||
"""The default time zone of the app
|
||||
"""
|
||||
|
||||
from warnings import warn
|
||||
|
||||
from flask import has_app_context
|
||||
from pytz import timezone, utc
|
||||
from pytz.exceptions import UnknownTimeZoneError
|
||||
|
||||
@@ -148,6 +147,32 @@ class CalendarSocialApp(Flask, RoutedMixin):
|
||||
|
||||
return self._timezone
|
||||
|
||||
@property
|
||||
def instance_admin(self):
|
||||
"""The admin user of this instance
|
||||
"""
|
||||
|
||||
from calsocial.models import AppState, User
|
||||
|
||||
if not has_app_context():
|
||||
return None
|
||||
|
||||
admin_id = AppState['instance_admin']
|
||||
|
||||
try:
|
||||
admin_id = int(admin_id)
|
||||
except (TypeError, ValueError):
|
||||
warn(f'Instance admin is not set correctly (value is {admin_id})')
|
||||
|
||||
return None
|
||||
|
||||
try:
|
||||
return User.query.filter(User.id == admin_id).one()
|
||||
except NoResultFound:
|
||||
warn(f'Instance admin is not set correctly (value is {admin_id})')
|
||||
|
||||
return None
|
||||
|
||||
@staticmethod
|
||||
def _current_calendar():
|
||||
from .calendar_system.gregorian import GregorianCalendar
|
||||
|
Reference in New Issue
Block a user