Metadata-Version: 2.1
Name: django-page-visibility
Version: 0.1.2
Summary: Implements a function to test whether a given url is currently visible to a given user.
Home-page: https://github.com/quadrant-newmedia/django_page_visibility
Author: Alex Fischer
Author-email: alex@quadrant.net
License: UNKNOWN
Description: # django_page_visibility
        
        This package implements a standard protocol allowing developers to ask "can user X currently access page Y?". 
        
        Rather than duplicating the permission checks performed in that view, you ask the view itself whether or not the user can access it.
        
        ## Conforming Views
        
        Conforming views must implement a `.test_page_visibilty(request, *args, **kwargs)` method. This will be called with the same `args` and `kwargs` that the actual view would be called with. 
        
        This method must return a truthy value if the user can access the page, and False otherwise. It may also raise an exception, to indicate that the user cannot access the page. See `PAGE_VISIBILITY_EXCEPTIONS` below.
        
        ## The Test Function
        
        Developers can call `django_page_visibility.is_visible_to_user(path, user)` (see the code for details) to test visibility. Or, in a template, you can use our `is_permitted_to_see` filter or `permitted_link` tag.
        
        ## `PAGE_VISIBILITY_EXCEPTIONS` setting
        
        By default, we return `False` if either `django.http.Http404` or `django.core.exceptions.PermissionDenied` are raised. You can override this by setting (in your django settings) `PAGE_VISIBILITY_EXCEPTIONS` to a list of exception classes. 
        
        We expect most users to override this setting. For example, if you are using `exceptional_auth` and `django_early_return`, then you'll want to set:
        ```python
        PAGE_VISIBILITY_EXCEPTIONS = [
            'django.core.exceptions.PermissionDenied',
            'django.http.Http404',
            'django_early_return.EarlyReturn',
            'exceptional_auth.AuthException',
        ]
        ```
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
