18 Commits

Author SHA1 Message Date
Sunil Mohan Adapa
a1d5486c82 config: Refactor for easy testing
- Split the read method into two separate methods for getting the config
  file and for reading config file.

- Use logging module for printing error.

- Fix global variable naming.

- Get/set/show the realpath of the config file.

- Convert config items into a list so that the order is more
  predictable.  This is the reason for unpredictable failures in test
  cases.
2015-12-05 09:51:50 -05:00
fonfon
125cb88336 Removed cfg.product_name entry and tests
The name 'Plinth' (cfg.product_name) is not used anymore after my previous
commits.
Reason for the complete removal: I do not think that users should know or have
to care about the internal name of the web interface of the FreedomBox.
2015-10-28 19:52:14 -04:00
Sunil Mohan Adapa
45fd4f2a53 Cleanup casting from values in cfg 2015-09-29 22:50:02 +05:30
fonfon
3d87c3eb3b Data types for cfg.py; add danube_edition entry
- Explicitly state datatype in config_items to handle them more
  generically

- Handle boolean values correctly.  Before this fix we got the string
  'False' which evaluated to True (this affected the entry
  'use_x_forwarded_host').

- Add the config entry 'danube_edition'. Activating it shows a voucher
  input field for pagekite accounts on freedombox.me during the
  firstboot process. Other vouchers (i.e. for VPN services) might
  follow.  Add description and test for 'danube_edition' setting.
2015-09-29 09:11:18 +05:30
Sunil Mohan Adapa
e09018fe9a Fix issues with configuration/parameters loading
- Change default server directory from plinth/ to /plinth as the program
  expects.

- First load the values from configuration file and then override them
  with command line parameters.

- Show default values on the command line help.

- Use configuration file values as default values to command line
  parameters.

- Log the value of script prefix (server_dir) for easy debugging.

- Make sure the server_dir is properly loaded from configuration files.
2015-04-07 22:43:25 +05:30
Bob Girard
f184c23c31 Add unit tests (#1)
* Add unit tests for cfg.py, context_processors.py, and menu.py
* Add new plinth/tests/data directory for miscellaneous test data
* In cfg.py, add an explicit check to verify the existence of the secondary
  (non-default) plinth.config file
* In cfg.py, replace deprecated configparser.SafeConfigParser with
  configparser.ConfigParser
2015-01-30 18:11:36 +05:30
Sunil Mohan Adapa
1b6969a8a6 Rethink how proxied headers are handled
- Request Apache to send X-Forwarded-Proto header.

- Use X-Forwarded-Proto header to understand original protocol
  requested.

- Use X-Forwarded-Host header to understand original host requested.

- Allow any incoming host header so that FreedomBox can have any
  hostname and when user requests for Plint with that hostname, it
  works.

- Don't depend on Apache to rewrite the Location: header.  Instead use
  the original host and original scheme to set proper Location: header.
2014-11-30 15:11:50 +05:30
Sunil Mohan Adapa
5b969d9d30 Explicitly write license headers for each source file
The package license (AGPL3+) implicitly indicates the license of each
file.  However, it is desirable to have license headers in each file.
This is the case for many prominent projects like GNU project, Mozilla
etc.
2014-11-30 14:49:49 +05:30
Sunil Mohan Adapa
9e0d08e49d Move enabled modules list to configuration directory 2014-10-04 13:41:26 +05:30
Sunil Mohan Adapa
c9d8bb9d00 Require and use Python3 2014-10-01 11:31:51 +05:30
Sunil Mohan Adapa
42d05bfe1f Use Django models to store variables
- Remove dependency on withsqlite and use Django models.
  This avoids depending on a module that is not available in PyPi.
  Withsqlite does not have Python3 support. It does not work when
  we choose a different database backend. Atleast partly duplicates
  what Django models are meant for.

- Check and update database schema on every run so that
  newly added modules can add tables and old ones can update.
2014-09-10 12:35:35 +05:30
Sunil Mohan Adapa
27cdadbc76 Log a message showing the config file used 2014-09-02 14:47:35 +05:30
Sunil Mohan Adapa
f243dfa3ab Allow running from working directory 2014-08-31 16:32:11 +05:30
Sunil Mohan Adapa
4625bc55df Remove unused user_dir config variable 2014-08-31 16:23:50 +05:30
Sunil Mohan Adapa
e627c1795b Ability to read configuration from system or working directory 2014-08-31 13:14:32 +05:30
Sunil Mohan Adapa
b82fb629f0 Remove use of python_root in cfg and use relative path 2014-08-31 13:08:45 +05:30
Sunil Mohan Adapa
33f8015835 Make the help module read documentation directory from config 2014-08-31 13:07:00 +05:30
Sunil Mohan Adapa
65fa648d9f Reorganize python sources into 'plinth' package 2014-08-29 12:57:27 +05:30