paulb@210 | 1 | #!/usr/bin/env python |
paulb@210 | 2 | |
paulb@210 | 3 | "A simple Zope product." |
paulb@210 | 4 | |
paulb@210 | 5 | from Simple import SimpleResource |
paulb@210 | 6 | from WebStack.Resources.LoginRedirect import LoginRedirectResource, LoginRedirectAuthenticator |
paulb@210 | 7 | from WebStack.Adapters.Zope import WebStackAdapterProduct |
paulb@210 | 8 | from Globals import InitializeClass |
paulb@210 | 9 | |
paulb@210 | 10 | class SimpleWithLoginProduct(WebStackAdapterProduct): |
paulb@210 | 11 | meta_type = "Simple with login product" |
paulb@210 | 12 | def __init__(self, id): |
paulb@210 | 13 | WebStackAdapterProduct.__init__(self, id, |
paulb@210 | 14 | LoginRedirectResource( |
paulb@210 | 15 | login_url="http://localhost:9080/tests/login", |
paulb@210 | 16 | app_url="http://localhost:9080", |
paulb@210 | 17 | resource=SimpleResource(), |
paulb@210 | 18 | authenticator=LoginRedirectAuthenticator(secret_key="horses"), |
paulb@210 | 19 | anonymous_parameter_name="anonymous", |
paulb@210 | 20 | logout_parameter_name="logout" |
paulb@210 | 21 | ) |
paulb@210 | 22 | ) |
paulb@210 | 23 | |
paulb@210 | 24 | InitializeClass(SimpleWithLoginProduct) |
paulb@210 | 25 | |
paulb@210 | 26 | def addSimpleWithLoginProduct(self): |
paulb@210 | 27 | """ |
paulb@210 | 28 | The HTML form used to add the product. |
paulb@210 | 29 | """ |
paulb@210 | 30 | |
paulb@210 | 31 | return """ |
paulb@210 | 32 | <html> |
paulb@210 | 33 | <head> |
paulb@210 | 34 | <title>Add Simple with Login Product</title> |
paulb@210 | 35 | </head> |
paulb@210 | 36 | <body> |
paulb@210 | 37 | <form action="addProduct"> |
paulb@210 | 38 | id <input name="id" type="text"><br> |
paulb@210 | 39 | <input name="add" type="submit" value="Add!"> |
paulb@210 | 40 | </form> |
paulb@210 | 41 | </body> |
paulb@210 | 42 | </html> |
paulb@210 | 43 | """ |
paulb@210 | 44 | |
paulb@210 | 45 | def addProduct(self, id, REQUEST=None): |
paulb@210 | 46 | """ |
paulb@210 | 47 | The function used to add the product. |
paulb@210 | 48 | """ |
paulb@210 | 49 | |
paulb@210 | 50 | product = SimpleWithLoginProduct(id) |
paulb@210 | 51 | self.Destination()._setObject(id, product) |
paulb@210 | 52 | if REQUEST: |
paulb@210 | 53 | return self.manage_main(self, REQUEST) |
paulb@210 | 54 | |
paulb@210 | 55 | def initialize(context): |
paulb@210 | 56 | context.registerClass( |
paulb@210 | 57 | SimpleWithLoginProduct, |
paulb@210 | 58 | constructors = (addSimpleWithLoginProduct, addProduct) |
paulb@210 | 59 | ) |
paulb@210 | 60 | |
paulb@210 | 61 | # vim: tabstop=4 expandtab shiftwidth=4 |