1566 Commits

Author SHA1 Message Date
Sunil Mohan Adapa
798e775038
storage: Fix regression with restoring backups with storage
Regression was introduced in a2d07fef0b9e2ae54f98fb5209b9cb0c5fd6f456 when
backup data import from manifest was inadvertently removed.

Closes: #1636.

Test:

  Create a backup with this patch and 'storage' as one of the selected apps for
  backup. Try to restore the backup without the patch. Observe that it fails.
  Restore the backup with the patch. Observe that it succeeds.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-26 18:31:12 -04:00
Sunil Mohan Adapa
68bc333842
updates: Allow matrix-synapse 1.3 to be installed for buster users
- matrix-synapse 1.2 is already unavailable in buster-backports, testing and
  unstable. It is replaced by matrix-synapse 1.3. Allow matrix-synapse 1.3 to
  become available for Buster users.

- Allow upgrades to all future versions of matrix-synapse from buster-backports.
  Since buster-backports does not have security updates except that provided
  by the maintainer, it is best to let users be on the latest version provided
  by the maintainer in buster-backports.

- We don't pick and choose among the versions uploaded to backports. Once we
  allow a package to upgrade to backports version, we should continue to do that
  without any further restriction. Update descriptions accordingly.

- Simplify updating the apt preferences file by providing a simple configuration
  instead of creating the file on the fly.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-25 17:41:58 -04:00
Sunil Mohan Adapa
a66d50fb89
users: Cosmetic yapf and isort fixes
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-25 15:52:15 -04:00
Sunil Mohan Adapa
2317e6bd94
users: Minor fix to return value when getting last admin user
Tests:

- When only when admin user is present, the users list does not show delete
  button next to the admin user. The checkbox for admin group is disabled (but
  checked) for that user in edit user form.

- When there are multiple admin users preset, the users list shows delete button
  against all admin users. The checkbox for admin group is enabled (but checked)
  for all admin users.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-25 15:52:12 -04:00
Sunil Mohan Adapa
e1e654554e
users: Minor cosmetic refactoring
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-25 15:52:06 -04:00
Sunil Mohan Adapa
b01ac54dd3
users: Don't delete 'admin' group when running unit tests
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-25 15:52:03 -04:00
Sunil Mohan Adapa
696ce3b6a5
matrixsynapse: Fix apache syntax errors introduce by 4b8b2e171c86d75
This reverts the additional changes done in merge request !1540 and sets the
configuration to what was originally proposed in the merge request.

- AllowEncodedSlashes can't be set inside <Location> directive. It needs to be
  set inside VirtualHost directive making it apply for the entire site. In case
  of FreedomBox, this needs to be set globally. It may have implications for how
  we are encoding slashes in URLs include for storage module. It could cause
  unexpected regressions elsewhere.

- ProxyPass directory should have only argument inside a <Location> directive.
  Fix that too.

Closes: #1635.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-25 15:15:20 -04:00
Sunil Mohan Adapa
20c97c5ce3
tt-rss: Force upgrade to 18.12-1.1 and beyond
Force upgrade to any lower version to version less than or equal to 19.8.*.

config.php is the only configuration file for tt-rss app the FreedomBox
modifies. Comparison of config.php from 19.8 shows that there are no major
changes since 18.12. Changes to the configuration file are likely to be minor
and from Debian packaging. Force upgrading to all versions until 19.8.* should
be okay by retaining new configuration and performing FreedomBox changes on top
everything new configuration file is installed.

Tests:

- Install tt-rss version 18.12-1 using a test repository and custom priority.
  Then remove the custom priority and trigger 'apt update'. This will trigger an
  force upgrade of tt-rss to version 18.12-1.1. Verify that the tt-rss interface
  is available and functional.

- Install tt-rss version 18.12-1.1 freshly. Verify that the tt-rss interface is
  available and functional.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-24 10:25:54 -04:00
bn4t
4b8b2e171c
matrix-synapse: Use recommended reverse proxy configuration
matrix-synapse reverse proxy configuration for Apache according to:
https://github.com/matrix-org/synapse/blob/master/docs/reverse_proxy.rst

Fixes #1533.

[sunil@medhas.org Fix closing location directive]
Tested-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-08-23 11:10:33 -07:00
Sunil Mohan Adapa
49088ef578
cockpit: Make essential and install by default
See reasoning in https://salsa.debian.org/freedombox-team/plinth/issues/1629

Closes: #1629

Closes: #1452 (obsolete)

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-21 21:35:28 -04:00
Sunil Mohan Adapa
0c08248c12
avahi: Expose .local domain as a proper domain
When a hostname is set or changed, expose <hostname>.local as a domain. With
this, daemons can configure themselves to work properly with .local domains.
Cockpit is an example of a daemon that can be configured to allow connections
from .local domains

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-21 21:35:25 -04:00
Sunil Mohan Adapa
3ba7e961c4
letsencrypt: Don't try to obtain certificates for .local domains
Replace the check for ignoring .onion domains with a check that ignore any
domain type that can't have certificates.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-21 21:35:22 -04:00
Sunil Mohan Adapa
855a99cc21
config: Send hostname change signal only after fully processing it
If the domain name is not properly set before calling post_hostname_change
signal, then in the signal handlers config.get_domainname() returns an empty
string. So, call the post_hostname_change signal only after fully finishing the
hostname related changes, that is, after setting back the original domain name
too.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-21 21:35:19 -04:00
Sunil Mohan Adapa
e8e2aaf85b
ejabberd: Prevent processing empty domain name
When domain name is not set in the config app, currently ejabberd return a list
with an empty string as list of domains. This leads to certificates being copied
to invalid directory. Fix this by making sure domain name is added to the list
only if it is not an empty string.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-21 21:35:16 -04:00
Sunil Mohan Adapa
c30b3eb85c
cockpit: Apply domain name changes immediately
Without restarting cockpit, newly added/removed domain in cockpit configuration
file do not immediately work. Either the daemon has to stop itself due to
inactivity (it is socket activated by systemd) or system needs to be restarted.
Without the patch, if cockpit is not currently running (due to socket activation
not having happened yet) the domain name changes would be noticeable
immediately.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-21 21:35:13 -04:00
Sunil Mohan Adapa
393f4bbc26
names: Perform better layout of domain names table on small screens
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Joseph Nuthalapati <njoseph@riseup.net>
2019-08-21 10:17:59 +05:30
James Valleroy
e157c1f463
security: Hide vulnerability table by default
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
[sunil@medhas.org Fix 'rol' attribute to 'role']
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-08-18 17:36:56 -07:00
Sunil Mohan Adapa
03dcaa57da
api: Fix regression with listing only enabled apps in mobile app
Closes: #1626

Tests:

- List apps in mobile app front page. Observe that all apps are shown including
  disabled apps.

- With the patch, observer that only enabled apps are shown.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-12 18:26:19 -04:00
Sunil Mohan Adapa
173d3464b0
config: Remove unused domain change signal
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:40:12 -04:00
Sunil Mohan Adapa
bd05c43d32
letsencrypt: Remove unused listen to domain change signal
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:40:09 -04:00
Sunil Mohan Adapa
012db6ac93
cockpit: Don't handle the domain changed signal
Domain added and removed signals provide sufficient knowledge of domain name
changes.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:40:08 -04:00
Sunil Mohan Adapa
0dba497383
ejabberd: Use domain added signal for listening to domain changes
In the action, the new domain is always extended to the list of domain names
accepted by ejabberd. To simplify domain handling simply use the domain_added
signal.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:40:06 -04:00
Sunil Mohan Adapa
ba8db1b4b5
letsencrypt: Fix problem with automatically obtaining certificates
When a domain is added, an attempt will be made to obtain a valid LE certificate
for domain.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:40:00 -04:00
Sunil Mohan Adapa
ba4afd2a09
names: Use new API in all apps
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:39:56 -04:00
Sunil Mohan Adapa
b684b07d11
names: Make all apps use new api to retrieve domain names
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:39:54 -04:00
Sunil Mohan Adapa
ab42b9b241
names: Declare domain types in various apps
- config handles static domain types.

- pagekite handles pagekite domain types.

- tor handles hidden service domain types.

- dynamicdns handles dynamic domain types.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:39:52 -04:00
Sunil Mohan Adapa
5cbdd40f6b
names: Introduce new API to manage domains
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:39:49 -04:00
Sunil Mohan Adapa
b743305e06
names: Don't enumerate services for domains supporting all
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:39:47 -04:00
Sunil Mohan Adapa
d820ce15d0
names: Minor styling fixes
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:39:44 -04:00
Sunil Mohan Adapa
05d042765a
Minor yapf fixes
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 18:39:40 -04:00
Sunil Mohan Adapa
f3ccc416f0
upgrades: Set apt configuration to allow release info change
Helps #1601.

When release information such as 'Version' and 'Suite' change for a distribution
changes, apt requires an explicit confirmation from the user. apt-get(8)
specifies the reason for this prompt as ensuring that the user is prepared for
the change. On a FreedomBox installation, as the system administration agent of
the user, FreedomBox has to make this decision on whether the user is ready for
the change. FreedomBox works to keep the system up-to-date and manages
configuration changes for packages, data migration etc. Hence, accept all
release information changes without a prompt.

Without this, when a stable release is made, if the user was using that
code-name before the release, then the system stop receiving updates and no new
apps can be installed in FreedomBox. This happened in case of Buster release
although Debian itself had some part in this. See:
https://salsa.debian.org/freedombox-team/plinth/issues/1601

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-11 09:30:08 -04:00
Sunil Mohan Adapa
639fd71d88
firewall: Force upgrade to firewalld 0.7.x
Closes: #1608

Allow upgrade to any version of 0.7.x series. Use new configuration and apply
the two default configuration changes of FreedomBox.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-10 09:38:56 -04:00
Sunil Mohan Adapa
0cf099fe4f
Yapf changes
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-10 09:38:53 -04:00
Sunil Mohan Adapa
acdcabcbed
setup: Clarify success log message when force upgrading
Currently, in cases of ignoring an upgrade and actually upgrading, the log
message says success which is somewhat confusing. Make the force_upgrade()
methods in apps return information about ignoring the upgrade and print log
message accordingly.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-10 09:38:49 -04:00
Joseph Nuthalpati
7245518fbf
upgrades: Use reusable collapsible-button style for logs
+ Minor typo correction

Signed-off-by: Joseph Nuthalapati <njoseph@riseup.net>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
[sunil@medhas.org Fix indentation]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-08-07 09:21:58 -07:00
Sunil Mohan Adapa
de6f437f1a
storage: Handle all device paths during eject
Closes: #1618.

When using RAID disk, the disks paths could look like /dev/dm-1. Current regular
expression does not allow for '-' in the device path.

Ensure that all characters in the device path are handled as part of eject
operation.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: James Valleroy <jvalleroy@mailbox.org>
2019-08-07 05:39:57 -04:00
James Valleroy
1df4f19801
security: Fixup refactoring
Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
2019-07-29 19:43:51 -04:00
Sunil Mohan Adapa
229843cd1e
backups: Fix HTML template indentation, remove inline styling
Remove inline styling as it won't work with upcoming content security rules.
They should be re-added in CSS files.

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-29 14:09:38 -07:00
Sunil Mohan Adapa
c64fea7746
backups: Fix issue with showing index page
Fix an exception when loading backups page:

Exception Value: 'functools.partial' object has no attribute '__name__'

Exception Location: /vagrant/plinth/modules/backups/decorators.py in
 delete_tmp_backup_file, line 38

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-29 14:09:35 -07:00
Joseph Nuthalapati
caf1e4b0bd
flake8: Remove unused import
Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-29 14:09:31 -07:00
Joseph Nuthalapati
faac8cdd9c
backups: Make backup location tables collapsible
Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
[sunil@medhas.org Fix incorrectly removed <tr> tag in <thead>]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-29 14:09:28 -07:00
Joseph Nuthalapati
c2cb187d91
backups: Make UI more consistent with other apps
- Replace subsubmenu with buttons
- Left align icons in table header (restore and delete)
- Replace the technical term "repository" with "location"
- Confirmation dialogs shouldn't have app name, description, manual etc.
- Confirmation dialogs don't need Cancel buttons

Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
[sunil@medhas.org: Remove 'primary' for all but one button]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-29 14:09:12 -07:00
James Valleroy
22c00d5cd4
security: Show vulnerability counts
Show the number of vulnerabilities reported by debsecan for freedombox
package and for managed_packages of each installed app.

Essential apps are not included in the list. Also note that
dependencies of the managed_packages are not included yet.

The purpose of this information is to help users decide which apps to
use, and what level of personal information to store in each app.

Closes #1609.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
[sunil@medhas.org Show essential apps too]
[sunil@medhas.org Fix HTML tags]
[sunil@medhas.org Use setup_helper to get the installed state of an app]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-29 12:08:04 -07:00
James Valleroy
a0837be410
help: Show security notice when backports are in use
Closes #1611.

Signed-off-by: James Valleroy <jvalleroy@mailbox.org>
[sunil@medhas.org: Fixed incorrect HTML nesting and inline styling]
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-26 16:51:31 -07:00
Sunil Mohan Adapa
9d39225098
diaspora: Fix tests by reverting changes during flake8 clenaup
Revert diaspora changes from 86da6a894af23281042cb1fcc4644c2c9cd312c5

Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-25 12:08:27 -07:00
Sunil Mohan Adapa
86da6a894a
Minor changes to flake8 related updates
Signed-off-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-25 11:46:14 -07:00
Nikolas Nyby
5439084c84
Add flake8 to gitlib-ci - closes #58
And fix the rest of the flake8 errors.

Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-25 11:07:06 -07:00
Nikolas Nyby
f81b1751ce
Fix typos in module init docs
Intialize -> Initialize

Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-24 14:55:22 -07:00
Nikolas Nyby
ace339eabf
Introduce flake8 checking - #58
This introduces flake8 and fixes a bunch of flake8 errors.

flake8 is run with: ./venv/bin/flake8 plinth
if you're using a python3 venv.

We can eventually further integrate this with gitlab ci.

https://salsa.debian.org/freedombox-team/plinth/issues/58

Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-24 14:01:54 -07:00
Nikolas Nyby
d2e987ef3c
Fix a handful of typos in docs and comments
Found with [codespell](https://github.com/codespell-project/codespell/)

Reviewed-by: Sunil Mohan Adapa <sunil@medhas.org>
2019-07-24 12:39:11 -07:00