- Change in any of the following is treated as unique: protocol, frontend port,
subdomains.
- Change in any of the following is not treated as unique: backend port.
Issue reported in
https://salsa.debian.org/freedombox-team/plinth/-/merge_requests/1742#note_147960
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
When app is disabled with older code, 'abort_not_configured' is present in the
configuration file. Wipe it when re-enabling with newer code.
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
- Turn some methods in action script to private to improve abstraction.
- Always enable the predefined services when setting the configuration for the
first time.
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
- Simplifies the form submission code.
- When service is disabled, don't add the abort_not_configured configuration
flag. There is not need to change the configuration as disabling the daemon from
running is reliable enough.
- When the configuration is set for the first time, drop the
abort_not_configured flag and don't ever add it back.
- Set default values properly for frontend fields when no value is supplied.
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
- Merge actions is-disabled, get-frontend, get-kite and get-services into
get-config. This improves the initial startup time for FreedomBox service and
also the page load time for pagekite app. This also significantly simplifies the
code.
- Only use the pagekite service enabled status determine if pagekite is enabled.
Don't use the configuration setting.
- For custom services, provide additional data such as display URL from
get-config action. This removes the need for additional processing
prepare_service_for_display() and template tag create_pagekite_service_url.
- Also reduce the number of times configuration is retrieved to 1 when loading
the app view page and during startup of FreedomBox service.
- Ensure that all keys of the configuration always present and use that to
simplify some code.
- Remove ContextMixin from view DeleteServiceView that does not need it. Use
AppView and drop ContextMixin.
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
- When the current configuration does not contain a port and we try to
set the port for the frontend server, it fails. This patch fixes
that.
- Minor styling and spelling fixes.
- Make sure that if port is not set for frontend, it will be set on
saving the form.
- To check whether a service is running does not require root
privileges. This can directly be done from a module without any
action.
- Since actions are allowed to be run using sudo, introducing
unnecessary sub-commands increases attack surface.
- Simple functions calls are unnecessarily being converted to command
line invocations and involve parsing response.
- There is a lot of repeated code because of this that can be
eliminated.
- To generalize this, we need to make all non-root system operations
directly from module instead of delegating to action commands.
- Merge actions/pagekite_util.py into plinth/modules/pagekite/util.py.
- Rename plinth/modules/pagekite/util.py to utils.py.
- Add python-augeus as dependency.
- Move actions/util.py to plinth/action_utils.py and update services
that use it.
- Rename _run() method to run() as it is being used publicly.
- Import the utils in a more conventional manner.
- Move all python2 bits to python3.