60 Commits

Author SHA1 Message Date
Sunil Mohan Adapa
7e0156adbe
dynamicdns: Rewrite configuration handling and update using URL
- Drop all the bash code.

- Run the update URL code with same logic as before. Don't need to use action
code for it.

- Completely new way to handle configuration: using key/value store. Import old
configuration once and delete it.

- Use a glib scheduler instead of creating a cron job.

- Store and show status from key/value store.

- Handle multiple domains when getting/setting configuration and status. The UI
still shows a single configuration form. To be improved later.

- Catch and report all errors during the update process.

- Drop all NAT detection code.

- Drop selfhost.bz. German only, no free account, no proper TLS on domain, no
easy to test. Existing accounts will continue to work with "other" as the
service type.

- For gnudip update code, add a timeout of 10 seconds, set a buffer size of two
powers and fix handling error messages from server.

Tests:

- GnuDIP:

  - Upon submission of the form, the IP is updated if app is enabled. IP is not
  updated if app is disabled.

  - Every 5 minutes, check is made again and IP is updated.

  - If IP lookup URL is available, update calls are not made if the DNS is
  already up-to-date.

  - If IP lookup URL is not available, update calls are made unconditionally
  every 5 minutes.

- For each of noip.com, freedns.afraid.org and other service:

  - Upon submission of the form, the IP is updated if app is enabled. IP is not
  updated if app is disabled.

  - Every 5 minutes, check is made again and IP is updated.

  - If IP lookup URL is available, update calls are not made if the DNS is
  already up-to-date.

  - If IP lookup URL is not available, update calls are made unconditionally
  every 5 minutes.

- Form validation:

  - Domain field is always mandatory.

  - When type is selected as gnudip, the fields server, username, and password
  are mandatory.

  - When type is selected other than gnudip, the field update URL is mandatory.
  The rest are optional.

  - When the update URL contains a field contains <User>, username is mandatory.
  For <Pass>, password is mandatory. For <Ip>, ip_lookup_url is mandatory.

  - When use HTTP basic auth is checked, the fields username and password are
  mandatory.

  - Password is optional only if a previous password exists. If configuration is
  deleted from kvstore, password is mandatory.

- Configuration import:

  Install dynamicdns without the patch. Add configuration with each of the
  service types. For GnuDIP service type, set two configurations with one with
  and without IP lookup URL. Update to code with the patch. Setup should run.

  - All fields in the configuration should be imported properly.

  - If the previous configuration is disabled, app should be disabled after
  import. Enabled otherwise.

  - Updating the IP address should work immediately after import.

- Enable/Disable: when enabled, IP URL should be enabled every 5 minutes.
When disabled, updates should not happen.

- Status:

  - When status is removed from the DB, it should show that no status is
  available yet.

  - When the form is updated or update happens via the timer, the status is
  shown. It should show success for a proper update. Proper external IP address
  should be shown.

  - Set the server to localhost and submit. Status should show 'Server refused
  connection' message. IP address should be '-'.

  - Set the server to an unknown domain. Status should show 'Could not find
  server' message. IP address should be '-'.

  - Set the server to a known domain. Status should show 'Connection timed out'
  message. IP address should be '-'.

  - Last update time should keep increasing as time passes.

- Backup/restore:

  - Functional tests.

- Javascript:

  - When GnuDIP is selected as the type, the fields server, username, password,
  domain, show password, and IP lookup URL should be shown while other fields
  should be hidden. Same on page load with GnuDIP as pre-selected type.

  - When GnuDIP is not selected as the type, the fields update URL, accept all
  SSL certificates, use basic HTTP auth, domain name, username, password, show
  password, IP lookup URL and use IPv6 fields should be shown and rest of the
  fields should be hidden. Same on page load with non-GnuDIP as pre-selected
  type.

  - When show password is checked, password should be shown and when it is
  unchecked, password is masked.

  - When other service types are selected, the update URL values changes to the
  respective service's URL.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-02-10 20:31:39 -05:00
Sunil Mohan Adapa
f107e83534
dynamicdns: Drop NAT detection as it is no longer used
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-02-10 20:31:30 -05:00
Sunil Mohan Adapa
eac8f1f905
dynamicdns: Drop tabs and use single page
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-02-10 20:31:27 -05:00
Sunil Mohan Adapa
4705f1883f
dynamicdns: Drop about page and merge into description
Rename dynamicdns_configuration.html to dynamicdns.html.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2022-02-10 20:31:20 -05:00
Sunil Mohan Adapa
9133711baf
dynamicdns: Update URLs to the new dynamic DNS server
By December 15th, all freedomboxes should no longer be pointing to the old
server. Hence, we need to have these changes done much before the migration date
for the changes to propagate.

The new website ddns.freedombox.org does not allow registrations yet. However,
the new website has a link to announcement. There is now an advice for new users
seeking to create accounts during the migration period.

Tests:

- In Dynamic DNS app, in the about page, the link is to the new server and it
works.

- The example link in the configuration form, IP URL field description is to new
server and it works.

- Functional tests for the Dynamic DNS app work.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2021-12-03 12:43:11 -05:00
Sunil Mohan Adapa
e89e2b4a2a
*.html: Use SPDX license identifier
Reviewed-by: Veiko Aasa <veiko17@disroot.org>
2020-02-19 14:39:19 +02:00
Sunil Mohan Adapa
902851252a
dynamicdns: Use app.html instead of app-subsubmenu.html
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-10-05 13:26:11 -04:00
Sunil Mohan Adapa
e4351b6b97
Introduce daemon component to handle systemd units
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-06-13 20:18:02 -04:00
Sunil Mohan Adapa
f81cd5c799
dynamicdns: Simplify template inheritance
- Fix issue with form messages not showing up.

- Remove unnecessary duplication of code from base template.

- Minor docstring styling.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-03-08 14:25:45 -08:00
Joseph Nuthalapati
0a51654793
dynamicdns: Move subsubmenu below description
Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-03-08 14:25:13 -08:00
Prachi Srivastava
f43e185a8c
security: Moves inline javascript to files
Signed-off-by: Prachi Srivastava <prachi.chs.2009@gmail.com>
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-01-28 17:39:12 -08:00
Joseph Nuthalapati
4064d6e231
manual: Link to manual from each service
Closes #930

- Make targets to download wiki pages of each service

- Add post-processor script for DocBook file processing

Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2018-03-22 19:49:14 -04:00
Sunil Mohan Adapa
dea4af17fb
Rename Plinth to FreedomBox in license headers
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2018-02-16 20:10:09 -05:00
Swapnil Gupta
615f0d0298
Update in licenses 2016-12-20 17:36:00 -05:00
Swapnil Gupta
699bdbfed6
Revert "Added license for inline js"
This reverts commit ee0d3745107c910e20350fa57c1fec7da7f90563.
2016-12-20 17:35:57 -05:00
Swapnil Gupta
cfe75b57f0
Added license for inline js 2016-12-20 17:35:54 -05:00
Sunil Mohan Adapa
942b23c3c3
dynamicdns: Change 'lookup' to 'look up'
The original patch Nikhil Rayaprolu had this correct.  I have
incorrectly changed it.  Fixing it.
2016-07-28 22:58:00 +05:30
Nikhil Rayaprolu
777dbbe2a7
dynamicdns: Improve label for IP Check URL 2016-07-28 22:51:29 +05:30
fonfon
f867ecfb16
Removed (accidentially) duplicate dyndns description 2016-05-11 18:19:46 -04:00
fonfon
f419c28596
Services: Explicitly use ServiceForm and ServiceView
- adapted all modules to not use views.ConfigurationView anymore
- removed templates that are not needed anymore
- no more implicit 'enabled' and 'get_status' functions in __init__.py files
- (more coherent/explicit use of Django functionality)
2016-05-11 18:19:31 -04:00
Sunil Mohan Adapa
a51c784457
Various message fixes
- Capitalize 'Internet' to make it consistent across Plinth.  See:
  https://en.wikipedia.org/wiki/Capitalization_of_%22Internet%22

- Other minor fixes
2016-03-13 18:20:54 -04:00
James Valleroy
767e3c4757
dynamicdns: Make corrections to source strings. 2016-03-12 16:11:55 -05:00
Sunil Mohan Adapa
1842db42da
dynamicdns: Use new setup mechanism 2016-02-13 13:50:54 +05:30
Caly
15312fe595
Update messages for simplicity/consistency/grammer
- Closes #375 and #380.

- More use of configurable brand name.
2016-01-24 12:14:25 +05:30
Sunil Mohan Adapa
572e68dc36
Make remaining uses of brand name customizable 2016-01-24 00:50:14 +05:30
Ruben Lubbes
841439ba73 Punctuation errors changed after DE language check
Influences all translations, so do not use for 0.7.
2015-12-09 23:55:55 +05:30
Sunil Mohan Adapa
02cd89b60d Internationalize strings in template files 2015-11-13 22:02:17 +05:30
Daniel Steglich
8af4ee423a removed dictionary because string values can be used in dropdown menu directly 2015-03-13 14:09:58 +01:00
Daniel Steglich
337fa56b15 refactoring, made the code more readable, use consistent indentions, whitespaces and linebreaks next to brackets 2015-03-12 17:07:21 +01:00
Daniel Steglich
66a4083891 moved reconfiguration of dropdown display directly to the onchange function of the dropdown box as the code is not used elsewhere 2015-03-10 00:31:30 +01:00
Daniel Steglich
8269cfe97e removed duplicate code and avoid deleting form field config on reload 2015-03-09 23:33:09 +01:00
Daniel Steglich
9f8281f9dc do not change values of dropdown element, but change selection 2015-03-09 22:35:51 +01:00
Daniel Steglich
6bb73467a6 improved helptext 2015-03-09 22:06:21 +01:00
Daniel Steglich
9f6d9487bd use ssl for freedns 2015-03-09 21:57:34 +01:00
Daniel Steglich
fa076edda4 fixed indention 2015-03-09 21:44:25 +01:00
Daniel Steglich
15a6c49922 only show fields according to dropdown menu when entering form first tim (after enable checkbox was selected) 2015-03-07 00:03:00 +01:00
Daniel Steglich
e5ddfe0906 added hint for free dns service 2015-03-06 23:41:30 +01:00
Daniel Steglich
3b0a070283 configure the form according to last configured values when loading the formular 2015-03-06 23:10:36 +01:00
Daniel Steglich
a57f86315e added freedns provider 2015-03-06 22:04:42 +01:00
Daniel Steglich
7d44f0c4e4 do not delete GnuDIP Server address if dropdown box changes and check/uncheck HTTP Basic auth according to update URL provider template 2015-03-06 21:21:19 +01:00
Daniel Steglich
45960542bb less than 80 characters per line 2015-03-05 22:03:55 +01:00
Daniel Steglich
94991b9bb6 changed form manipulation from plain javascript to jquerry and removed javascript from python file 2015-03-05 21:48:30 +01:00
Daniel Steglich
e42b8e5015 covered empty server arguments and made parameter comparsion more easy 2015-03-05 14:03:11 +01:00
Daniel Steglich
21f0aeef1c fixed indention 2015-03-05 13:20:46 +01:00
Daniel Steglich
746b077557 fixed typo 2015-03-05 13:15:44 +01:00
Daniel Steglich
f1c1d812e9 updated javascript disabled helper message 2015-03-03 23:05:34 +01:00
Daniel Steglich
e6ee17cfbd fixed variables 2015-03-03 22:36:02 +01:00
Daniel Steglich
3e75e65fc5 added concrete URL's for noip and selfhost.bz 2015-03-03 21:59:10 +01:00
Daniel Steglich
3178405a6e fixed javascript after field renaming 2015-03-03 21:46:33 +01:00
Daniel Steglich
a2e8a0ec8a prepared update URL functionality (implemented new parameters) 2015-03-02 23:39:28 +01:00