Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

What is iw.rejectanonymous ?

This package is made to reject unconditionnally anonymous users from a plone site; they should get redirected by plone to login form. The basic use case is an extranet, where all visitors must be authenticated.

How to use iw.rejectanonymous ?

By default an anonymous user can browse portal:

>>> portal_url = self.portal.absolute_url()
>>> browser.open(portal_url)
>>> browser.url == portal_url
True
>>> browser.headers['status']
'200 OK'

We mark the portal with IPrivateSite; this can be achieved by code or in the ZMI using “Interfaces” tab on the portal object. Now Anonymous will get Unauthorized exception. In a plone site this should results in a redirect to login form.

>>> from zope.interface import alsoProvides
>>> from iw.rejectanonymous import IPrivateSite
>>> alsoProvides(self.portal, IPrivateSite)
>>> browser.open(portal_url)
Traceback (most recent call last):
...
Unauthorized: ...

Login form and some styles resources are still accessible:

>>> login_form_url = self.portal.login_form.absolute_url()
>>> browser.open(login_form_url)
>>> browser.url == login_form_url
True
>>> require_login_url = self.portal.require_login.absolute_url()
>>> browser.open(require_login_url)
>>> browser.url == require_login_url
True
>>> cooked_css = self.portal.portal_css.getCookedResources()[0]
>>> cooked_css_url = '%s/portal_css/%s' % (portal_url, cooked_css.getId())
>>> browser.open(cooked_css_url)
>>> browser.url == cooked_css_url
True
>>> cooked_js = self.portal.portal_javascripts.getCookedResources()[0]
>>> cooked_js_url = '%s/portal_javascripts/%s' % (portal_url, cooked_js.getId())
>>> browser.open(cooked_js_url)
>>> browser.url == cooked_js_url
True
>>> logo_id = self.portal.base_properties.getProperty('logoName')
>>> logo_url = self.portal[logo_id].absolute_url()
>>> browser.open(logo_url)
>>> browser.url == logo_url
True
>>> mail_password_form_url = self.portal.mail_password_form.absolute_url()
>>> browser.open(mail_password_form_url)
>>> browser.url == mail_password_form_url
True

Reset password tool is accessible as well.

>>> passwordreset_url = self.portal.passwordreset.absolute_url()
>>> browser.open(passwordreset_url)
>>> browser.url == passwordreset_url
True

Then we log in, and we will be authorized to browse the portal

>>> from Products.PloneTestCase.setup import default_user, default_password
>>> browser.addHeader('Authorization',
...                   'Basic %s:%s' % (default_user, default_password))
>>> browser.open(portal_url)
>>> browser.url == portal_url
True
>>> browser.headers['status']
'200 OK'

Metadata

Release files for iw.rejectanonymous 1.0.1dev-r145758

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iw.rejectanonymous 1.0.1dev-r145758
File Size Uploaded
iw.rejectanonymous-1.0.1dev-r145758.tar.gz 6.5 kB Details

Release files / iw.rejectanonymous-1.0.1dev-r145758.tar.gz

Download URL iw.rejectanonymous-1.0.1dev-r145758.tar.gz
Size 6.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b5d0ad742b31c28ce3622280d4004a6c57e40ac82cd7ebba2aeac7dc106cb53e
BLAKE2b-256 checksum
How to use checksums
522a62bdaff85701c487f7b201043ecc0edbd157c4f4897370ef0cb8ff0a43d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.2.8

2 release files

1.2.7

1 release file

1.2.6

1 release file

1.2.5

1 release file

1.2.4

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2

1 release file

1.1

1 release file

1.0.2

1 release file

1.0.1

1 release file

1.0.0

2 release files

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page