commit
6c4a2657ec
@ -30,3 +30,6 @@ class SettingsController(ObController):
|
||||
if variable.refresh_player:
|
||||
self._model_store.variable().update_by_name("refresh_player_request", time.time())
|
||||
|
||||
if variable.name == 'auth_enabled':
|
||||
self.reload_web_server()
|
||||
|
||||
|
||||
@ -8,8 +8,9 @@ from src.interface.ObPlugin import ObPlugin
|
||||
|
||||
class ObController(abc.ABC):
|
||||
|
||||
def __init__(self, app, auth_required, model_store: ModelStore, template_renderer: TemplateRenderer, plugin: Optional[ObPlugin] = None):
|
||||
def __init__(self, web_server, app, auth_required, model_store: ModelStore, template_renderer: TemplateRenderer, plugin: Optional[ObPlugin] = None):
|
||||
self._app = app
|
||||
self._web_server = web_server
|
||||
self._auth = auth_required
|
||||
self._model_store = model_store
|
||||
self._template_renderer = template_renderer
|
||||
@ -26,3 +27,5 @@ class ObController(abc.ABC):
|
||||
|
||||
return self._plugin
|
||||
|
||||
def reload_web_server(self):
|
||||
self._web_server.reload()
|
||||
@ -56,6 +56,9 @@ class UserManager(ModelManager):
|
||||
def get_one_by_username(self, username: str, enabled: bool = None) -> Optional[User]:
|
||||
return self.get_one_by(query=lambda v: v['username'] == username and (enabled is None or v['enabled'] == enabled))
|
||||
|
||||
def count_all(self):
|
||||
return len(self.get_all())
|
||||
|
||||
def get_all(self, sort: bool = False) -> List[User]:
|
||||
raw_users = self._db.get_all()
|
||||
|
||||
|
||||
@ -202,10 +202,15 @@ class VariableManager(ModelManager):
|
||||
return [variable for variable in self.get_all() if not variable.editable]
|
||||
|
||||
def update_form(self, id: str, value: Union[int, bool, str]) -> None:
|
||||
self._db.update_by_id(id, {"value": value})
|
||||
var_dict = self._db.update_by_id(id, {"value": value})
|
||||
var = self.hydrate_object(var_dict, id)
|
||||
self._var_map[var.name] = var
|
||||
|
||||
def update_by_name(self, name: str, value) -> Optional[Variable]:
|
||||
return self._db.update_by_query(query=lambda v: v['name'] == name, new_data={"value": value})
|
||||
[var_id] = self._db.update_by_query(query=lambda v: v['name'] == name, new_data={"value": value})
|
||||
var_dict = self._db.get_by_id(var_id)
|
||||
var = self.hydrate_object(var_dict, id)
|
||||
self._var_map[name] = var
|
||||
|
||||
def add_form(self, variable: Union[Variable, Dict]) -> None:
|
||||
form = variable
|
||||
|
||||
@ -36,6 +36,9 @@ class WebServer:
|
||||
port=self._model_store.config().map().get('port')
|
||||
)
|
||||
|
||||
def reload(self) -> None:
|
||||
self.setup()
|
||||
|
||||
def setup(self) -> None:
|
||||
self._setup_flask_app()
|
||||
self._setup_web_globals()
|
||||
@ -77,6 +80,9 @@ class WebServer:
|
||||
self._login_manager.init_app(self._app)
|
||||
self._login_manager.login_view = 'login'
|
||||
|
||||
if self._model_store.user().count_all() == 0:
|
||||
self._model_store.user().add_form(User(username="admin", password="admin", enabled=True))
|
||||
|
||||
@self._login_manager.user_loader
|
||||
def load_user(user_id):
|
||||
return self._model_store.user().get(user_id)
|
||||
@ -95,16 +101,16 @@ class WebServer:
|
||||
|
||||
return decorated_function
|
||||
|
||||
PlayerController(self._app, auth_required, self._model_store, self._template_renderer)
|
||||
SlideshowController(self._app, auth_required, self._model_store, self._template_renderer)
|
||||
SettingsController(self._app, auth_required, self._model_store, self._template_renderer)
|
||||
SysinfoController(self._app, auth_required, self._model_store, self._template_renderer)
|
||||
PlayerController(self, self._app, auth_required, self._model_store, self._template_renderer)
|
||||
SlideshowController(self, self._app, auth_required, self._model_store, self._template_renderer)
|
||||
SettingsController(self, self._app, auth_required, self._model_store, self._template_renderer)
|
||||
SysinfoController(self, self._app, auth_required, self._model_store, self._template_renderer)
|
||||
|
||||
if self._model_store.variable().map().get('fleet_enabled').as_bool():
|
||||
FleetController(self._app, auth_required, self._model_store, self._template_renderer)
|
||||
FleetController(self, self._app, auth_required, self._model_store, self._template_renderer)
|
||||
|
||||
if self._login_manager:
|
||||
AuthController(self._app, auth_required, self._model_store, self._template_renderer)
|
||||
AuthController(self, self._app, auth_required, self._model_store, self._template_renderer)
|
||||
|
||||
def _setup_web_globals(self) -> None:
|
||||
@self._app.context_processor
|
||||
|
||||
@ -6,9 +6,6 @@
|
||||
<form action="/settings/variable/edit" method="POST">
|
||||
<input type="hidden" name="id" id="variable-edit-id" />
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="variable-edit-name" class="hidden">{{ l.settings_variable_form_label_name }}</label>
|
||||
<div class="widget">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user