24 Commits

Author SHA1 Message Date
Rahul De
ad0b235dd7
users: Restrict groups and active user control to admins
- Only admins can now edit the groups of any user

- Only admins can mark any user as active or not

- Refactored all occurrences of admin checks to its own utility function
2017-02-15 21:07:54 +05:30
Sunil Mohan Adapa
dd5ab7612e
Minor refactoring and lint fixes
- Rename AdminMiddleware to AdminRequiredMiddleware to be consistent
  with stronghold/Django terminology

- Simplify .gitignore pattern

- Format single line docstrings as per PEP8.

- Add missing docstrings.

- Restrict lines to 79 characters.
2017-02-15 21:07:27 +05:30
lispyclouds
0f3189c6bd
frontpage: Show config options only to admins 2017-02-15 21:06:20 +05:30
mridulnagpal
8d5fc5f1c4
icons updated 2016-12-18 12:32:41 -05:00
mridulnagpal
06fb7fab3b
License updated ikiwiki icon added title indented 2016-12-18 12:32:26 -05:00
mridulnagpal
8f147e4c7f
frontpage: Show Configure button in service details
Only show when user is logged in.
2016-11-21 12:22:01 -05:00
Sunil Mohan Adapa
7d2f9549a0
frontpage: Fix regression in showing description
- After the shortcuts were turned into a list instead of dictionary, the
  descriptions stopped showing in the front page due to an 'in' check
  that worked for dict.  Fix this by changing the shortcuts into a
  dictionary.

- Also make the key of the shortcut dict an 'id' instead of 'app' that
  could create confusion how an app maps to a shortcut.

- Minor indentation fixes.
2016-09-02 20:06:41 +05:30
James Valleroy
49eadd971a
Add information about enabled services to front page 2016-09-02 20:03:39 +05:30
James Valleroy
3eb7dd914a
Add basic front page with shortcuts to web apps 2016-09-02 20:03:24 +05:30
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
fonfon
895f329654
Services: minor cleanup
- remove Service.description (not used anymore)
- remove datetime template (use default service.html instead)
2016-05-11 18:19:42 -04:00
fonfon
b54846b0ce
Services: Template restructuring
- renamed app.html to simple_service.html
- allow hiding the 'status' block instead of using separate
  apache_service.html template
2016-05-11 18:19:35 -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
2078e209d1
views: Minor adjustment to module load order 2016-02-28 19:54:24 +05:30
Sunil Mohan Adapa
fa8c2cf6ff
views: Add a common view for enabling applications
- A lot of boiler plate code can be removed from Plinth if enabling and
  disabling an application can be done using a common base form.

- This also allows to define a reusable method in an application for
  enabling and disabling.

- This brings more structure to a application module and paves way for
  having a different views such as dashboard.
2016-02-28 19:37:23 +05:30
Sunil Mohan Adapa
1f5fa31e53
package: Remove old package installation methods 2016-02-13 13:52:33 +05:30
Sunil Mohan Adapa
7a4a8fbc99
views: New view to show setup need and progress 2016-02-13 13:50:12 +05:30
James Valleroy
eca896a2e8 Fix missing import and pass before_install correctly. 2015-05-24 17:25:54 +05:30
Sunil Mohan Adapa
07ee03941f Redirect to apps page always from index page
- Plinth will become the home page for FreedomBox.  So it has to serve
  the purpose the directing users to available services.  This will
  happen most often and should also work when users are not logged in.

- Soon we will have a resigned 'front page'/'apps' section which is
  expected to be shown to user who are not logged in too.

- Apps menus has been removed.  Index page is now the only way to reach
  Apps section.
2015-05-01 21:14:04 -04:00
Sunil Mohan Adapa
3a22e1717e packages: refresh package list before install and handle errors
- Refresh package list before trying to install packages.  Also lookup
  the ID of the package, including the version, using the newly fetched
  package list.

- Call on_install() callback requested by modules only if the package
  installation was successful.  Handle any exception raised in the
  callback itself.

- Handle exceptions raised during packagekit operations.  Also check the
  returned results for error code.

- Capture error/success status during a transaction.  Don't destroy the
  transaction object until the error/success status has been collected.
  When a view is refreshed after completion of a transaction collect the
  result of the transaction and show it to the user.

- Handle cases where package searches in the package list fails.  Simply
  show the package name without its description.
2015-04-04 12:25:12 -04:00
Sunil Mohan Adapa
be838a30c1 package: Add ability to receive notification on install
- Fix issue with Mumble firewall enabling after a fresh install.
2015-03-28 16:02:39 -04:00
fonfon
e905d1a8f2 packagekit: use TemplateView instead of FormView
For the installation procedure a TemplateView is sufficient, and the user
won't be able to edit any form-data on the client-side.
2015-01-05 00:27:45 +05:30
Sunil Mohan Adapa
a4be460538 Introduce framework for checking/installing packages
- Uses PackageKit dameon, Glib library wrapping packagekit DBUS API and
  Python bindings for the Glib library.

- Implement a decorator to wrap views requiring packages.

- Framework allows for parallel operations.  However, doing parallel
  operations hangs because of what appears to be PackageKit backend
  limitations.
2015-01-05 00:13:19 +05:30
Sunil Mohan Adapa
65fa648d9f Reorganize python sources into 'plinth' package 2014-08-29 12:57:27 +05:30