| Vulnerabilities | |||||
|---|---|---|---|---|---|
| Version | Suggest | Low | Medium | High | Critical |
| 0.4.0 | 0 | 0 | 0 | 0 | 0 |
| 0.3.2 | 0 | 0 | 0 | 0 | 0 |
| 0.3.0 | 0 | 0 | 0 | 0 | 0 |
| 0.2.9 | 0 | 0 | 0 | 0 | 0 |
| 0.2.8 | 0 | 0 | 0 | 0 | 0 |
| 0.2.7 | 0 | 0 | 0 | 0 | 0 |
| 0.2.6 | 0 | 0 | 0 | 0 | 0 |
| 0.2.5 | 0 | 0 | 0 | 0 | 0 |
| 0.2.4 | 0 | 0 | 0 | 0 | 0 |
| 0.2.3 | 0 | 0 | 0 | 0 | 0 |
| 0.2.2 | 0 | 0 | 0 | 0 | 0 |
| 0.2.1 | 0 | 0 | 0 | 0 | 0 |
| 0.2.0 | 0 | 0 | 0 | 0 | 0 |
| 0.1.1 | 0 | 0 | 0 | 0 | 0 |
| 0.1.0 | 0 | 0 | 0 | 0 | 0 |
| 0.0.8 | 0 | 0 | 0 | 0 | 0 |
| 0.0.7 | 0 | 0 | 0 | 0 | 0 |
| 0.0.6 | 0 | 0 | 0 | 0 | 0 |
| 0.0.5 | 0 | 0 | 0 | 0 | 0 |
| 0.0.4 | 0 | 0 | 0 | 0 | 0 |
| 0.0.3 | 0 | 0 | 0 | 0 | 0 |
| 0.0.2 | 0 | 0 | 0 | 0 | 0 |
| 0.0.1 | 0 | 0 | 0 | 0 | 0 |
0.4.0 - This version may not be safe as it has not been updated for a long time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform
Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.
MIT - MIT LicenseGet inside your stronghold and make all your Django views default login_required
Stronghold is a very small and easy to use django app that makes all your Django project default to require login for all of your views.
WARNING: still in development, so some of the DEFAULTS and such will be changing without notice.
Install via pip.
pip install django-strongholdAdd stronghold to your INSTALLED_APPS in your Django settings file
INSTALLED_APPS = (
#...
'stronghold',
)Then add the stronghold middleware to your MIDDLEWARE_CLASSES in your Django settings file
MIDDLEWARE_CLASSES = (
#...
'stronghold.middleware.LoginRequiredMiddleware',
)If you followed the installation instructions now all your views are defaulting to require a login.
To make a view public again you can use the public decorator provided in stronghold.decorators like so:
from stronghold.decorators import public
@public
def someview(request):
# do some work
#...from django.utils.decorators import method_decorator
from stronghold.decorators import public
class SomeView(View):
def get(self, request, *args, **kwargs):
# some view logic
#...
@method_decorator(public)
def dispatch(self, *args, **kwargs):
return super(SomeView, self).dispatch(*args, **kwargs)from stronghold.views import StrongholdPublicMixin
class SomeView(StrongholdPublicMixin, View):
passUse Strongholds defaults in addition to your own settings.
Default:
STRONGHOLD_DEFAULTS = TrueYou can add a tuple of url regexes in your settings file with the
STRONGHOLD_PUBLIC_URLS setting. Any url that matches against these patterns
will be made public without using the @public decorator.
Default:
STRONGHOLD_PUBLIC_URLS = ()If STRONGHOLD_DEFAULTS is True STRONGHOLD_PUBLIC_URLS contains:
(
r'^%s.+$' % settings.STATIC_URL,
r'^%s.+$' % settings.MEDIA_URL,
)When settings.DEBUG = True. This is additive to your settings to support serving
Static files and media files from the development server. It does not replace any
settings you may have in STRONGHOLD_PUBLIC_URLS.
Note: Public URL regexes are matched against HttpRequest.path_info.
You can add a tuple of url names in your settings file with the
STRONGHOLD_PUBLIC_NAMED_URLS setting. Names in this setting will be reversed using
django.core.urlresolvers.reverse and any url matching the output of the reverse
call will be made public without using the @public decorator:
Default:
STRONGHOLD_PUBLIC_NAMED_URLS = ()If STRONGHOLD_DEFAULTS is True additionally we search for django.contrib.auth
if it exists, we add the login and logout view names to STRONGHOLD_PUBLIC_NAMED_URLS
Optionally, set STRONGHOLD_USER_TEST_FUNC to a callable to limit access to users
that pass a custom test. The callback receives a User object and should
return True if the user is authorized. This is equivalent to decorating a
view with user_passes_test.
Example:
STRONGHOLD_USER_TEST_FUNC = lambda user: user.is_staffDefault:
STRONGHOLD_USER_TEST_FUNC = lambda user: user.is_authenticatedTested with:
See CONTRIBUTING.md