68 Commits

Author SHA1 Message Date
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
f457a0bdd3
first_boot: Fix various issues and refactor
- Fix major regression so that steps can submitted multiple times in
  case of errors.

- Don't serve the welcome page (and other pages) only once.  Show it
  until action is an taken.  This does not apply to the final step.

- Eliminate all coupling of one first boot step on another.

- Move first boot helper methods to __init__.py instead of middleware as
  it is more generic than middleware.

- Implement caching the first boot state to avoid an SQL query on every
  page load.  The down side is that if first boot state is modified in
  the backend DB outside Plinth, Plinth will need to be restarted to
  catch the modified value.

- Mark some methods as private.

- Refactor middleware code for slightly more simplicity.

- Don't show sidebar in pagekite first boot step.  Set width like other
  pages.
2016-12-04 15:24:48 -05:00
Sunil Mohan Adapa
b347033f42
pagekite: Ensure / at the end of URLs 2016-12-04 15:24:42 -05:00
Sunil Mohan Adapa
e09434b998
pagekite: Fix first boot to use requests module
The intent is to use the requests module and make HTTP requests instead
of the Django requests.  This is probably a regression and this step
does not work without the change.
2016-12-04 15:24:39 -05:00
Sunil Mohan Adapa
56686b7148
firstboot: Rename views/urls to be non-numeric 2016-12-04 15:24:36 -05:00
Sunil Mohan Adapa
c37aa0fbd5
firstboot: Indentation & styling fixes
pycodestyle version used is 2.1.0 with default arguments.
2016-12-04 15:24:31 -05:00
Hemanth Kumar Veeranki
6011a7adfa
Made Suggested Changes 2016-11-03 22:06:08 -04:00
Hemanth Kumar Veeranki
0332d4489e
Added code for modules to register for first_boot #529 2016-11-03 22:06:00 -04:00
Sunil Mohan Adapa
18996b5c56
Import urlresolvers from django.urls
In Django 1.10, django.core.urlresolvers is available from
django.urls. Use it.
2016-08-11 18:03:00 -04:00
Sunil Mohan Adapa
5f548a9e36
packages: Make modules declare managed packages
This can then be used by a privileged action to verify that packages
requested for installation are in fact valid.  This slightly improves
security of those privileged actions.
2016-06-11 12:11:32 -04:00
Sunil Mohan Adapa
ccf217f2f7
pagekite: Fix regression not showing description
After the recent cleanup, pagekite no longer shows description before
installation.  Only after installation does it show the insturctions
about why it is needed.  Also in the description {box_name} is not
substituted and there are incorrect escape sequences.

Revert this earlier change that causes these regressions.
2016-06-07 07:19:30 -04:00
Sunil Mohan Adapa
5a0e2c0b91
pagekite: Move app to system configuration
This app rightfully belongs in system configuration section instead of
the application section.  It is setup once and not used regularly.  It
is not service but enabler for other services.
2016-06-07 07:19:24 -04:00
Sunil Mohan Adapa
ad61028a3a
menu: Sort menu items for all locales
Currently menu items are shown in alphabetical order in applications and
no clear order in system configuration.  This is done using static
weights for menu items based on English names that does not work for
other locales.

Sorting can't be done at the time of adding menu items as users of
multiple locales may use the interface at the same time.

Implement a sorting mechanism based on existing order as well as labels
of menu item.  This allows the flexiblity of grouping menu items in
future as it may be need for system configuration.  In case of help menu

Remove sort order for all modules except for help menu as here we want
that specific order.
2016-06-06 17:44:59 -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
Sunil Mohan Adapa
5e094934b0
pagekite: Use new setup mechanism 2016-02-13 13:51:40 +05:30
Sunil Mohan Adapa
7f4c5f7410
Make app names as module identifiers
- The last part of the module import path is the module name.  This also
  becomes the Django app name.  Apps names have to be unique.  Hence,
  there is no scope for two different modules with same name but
  different load path to exist in the project.

- Most uses of list of loaded modules are dealing with app names instead
  of full module load path.  This is due to the fact that Django deals
  with app names and not module paths.

- It is also somewhat clumsy to access a loaded module as we are
  re-importing every time to get access module.

- Simplify all of the above by using app names are module identifiers
  and maintaing an ordered dictionary of app names to loadded modules.

- Remove unused imports.

- Minor styling fixes.
2016-02-13 13:49:23 +05:30
Joel Valleroy
a23a40dede Removed default password warning. Fixes #386. 2016-02-02 00:12:07 +00:00
Sunil Mohan Adapa
4602c5bfce
Use translated brand name in templates
Using brand name directly from configuration means that it can't be
easily translated.  Instead use the translated brand name sent in my the
context processor.
2016-01-24 00:37:01 +05:30
Ruben Lubbes
fad7448417 More punctuation and minor errors changed 2015-12-09 23:55:55 +05:30
Sunil Mohan Adapa
a69f419c3c Make Django urlpatterns list of url()s
- Support for legacy pattern() mechanism will be removed in Django
  1.10.  Currently we see a warning for each Plinth module.
2015-12-05 09:33:23 -05:00
fonfon
1dbc566515 names module, pagekite: moved updating names to utils 2015-11-25 15:22:27 +01:00
James Valleroy
e0bfd1401f Name Services module 2015-11-25 15:22:27 +01:00
Sunil Mohan Adapa
01d50c7ae8 Fix i18n of template expressions 2015-11-14 11:42:32 +05:30
Sunil Mohan Adapa
3df1a88824 Switch to Django i18n for code strings
Django i18n layer is on top of gettext and provide may crucial features
such as per-request locales, lazy translations etc.
2015-11-13 22:08:43 +05:30
Sunil Mohan Adapa
02cd89b60d Internationalize strings in template files 2015-11-13 22:02:17 +05:30
Sunil Mohan Adapa
670be77b9a pagekite: Fix issue with setting port
- 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.
2015-10-11 17:54:26 +05:30
fonfon
aad69deb6e Display correctly if service is PageKite is enabled 2015-10-11 17:19:35 +05:30
fonfon
96a272b3b0 Added explicit port setting to pagekite configuration 2015-10-11 17:19:35 +05:30
fonfon
91b85f68ec pagekite: Remove redundent augeas dependency
- Plinth itself has depedency on augeas-tools and python3-augeas.
2015-09-29 09:14:25 +05:30
Sean Alexandre
21b9a5b02a Passwords now sent over stdin instead of command line.
Fixes Issue #166:
Don't pass passwords on command line
https://github.com/freedombox/Plinth/issues/166

This issue was for 4 modules: Transmission, Pagekite, DynamicDNS, and Ikiwiki.
2015-08-23 15:20:08 +05:30
Sunil Mohan Adapa
5ffe3dab70 Reorder all app menu items alphabetically
- Alphabetical order is best for users to find the necessary items
  quickly and precitably.

- Currently there is no particular order.
2015-07-28 12:15:35 +05:30
Sunil Mohan Adapa
07e2c0ce14 Don't use actions to check if service is running
- 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.
2015-07-19 19:54:13 -04:00
Sunil Mohan Adapa
517c364559 pagekite: Move to using python3-augeas
- 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.
2015-07-19 15:37:43 -04:00
fonfon
824a9091c1 use django-stronghold for authentication handling (instead of @login_required) 2015-07-01 00:01:02 +05:30
Bob Girard
d64ce6cc01 Bundle tests with applications
- For each application, add ./tests directory and __init__.py file
  within it.

- Modify test controllers (coverage.py, runtests.py) to find the new
  test directories for testing and coverage analysis.

- Move existing application-specific test modules (test_pagekite.py) to
  the newly created directories.
2015-06-26 12:05:48 +05:30
fonfon
32e94058f6 More consistent renaming from default to standard services 2015-05-04 11:04:35 +02:00
fonfon
702dbf5e61 Renamed default services to standard services 2015-05-04 10:32:53 +02:00
fonfon
0ffaaa3da7 Use JSON as pagekite action-script arguments
This allows to safe some conversions
2015-05-04 10:20:37 +02:00
fonfon
4561c3bcd9 Removed quote-checking functionality from pagekite
actions.py doesn't use shlex.quote anymore so I don't
have to check for accidentially quoted things anymore.
2015-05-03 19:27:12 +02:00
fonfon
7af92d9e65 Updated unit- and doctests 2015-05-03 19:27:12 +02:00
fonfon
7a4486fadf pagekite: restart service when config is changed
so the changed config gets applied immediately, and
not only after enabling/disabling the service manually.
2015-05-03 16:53:47 +02:00
fonfon
ef08f40447 minor layout cleanup 2015-05-03 15:28:45 +02:00
fonfon
3cc0cb74a6 Prevent adding existing or predefined services
and improved form error handling
2015-05-03 09:44:46 +02:00
fonfon
3f2c9ff2c8 cleaned up actions and configuration form 2015-05-03 09:44:46 +02:00
fonfon
99bfda3b69 removed default frontend stuff from actions
it's all handled via get-frontend and set-frontend now.
and there are now some doctests in actions/pagekite_util.py
2015-05-03 09:44:46 +02:00
fonfon
b96c89b0ab make pagekite login-required;
restart pagekite after adding/deleting a service so the changes take
effect;
improved warnings in the UI
2015-05-03 09:44:46 +02:00
fonfon
d5d9e2df2e renamed variables for consistency
there are only 'service' and 'service_string' now, no more 'params'
2015-05-03 09:44:46 +02:00