Re: [Zope-CMF] More browser views

2010-04-14 Thread Charlie Clark
Am 14.04.2010, 16:11 Uhr, schrieb Charlie Clark  
:

> The sandbox is kept pretty up to date but I'd forgotten to run buildout
> again. Some minor tests to fix it seems before I can commit.

Changes required to make tests pass:

* explicitly set the CookieCrumbler's id if passed on creation (like a  
folder). Ids are required by GenericSetup's import/export tests

I assumed it would be a good idea to make CookieCrumbler a unique object  
like the other tools but this breaks CookieCrumbler's own tests which  
depend on _setId() being used.

So - should CookieCrumbler be unique?

Incidentally when setId() is called Python 2.6 complains about the error  
message itself:

Error Type: TypeError
Error Value: exceptions must be old-style classes or derived from  
BaseException, not str

Do we need to fix this.

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-14 Thread Charlie Clark
Am 14.04.2010, 15:56 Uhr, schrieb Jens Vagelpohl :

> Have you updated your sandbox and re-run bin/buildout? Several items
> were pulled out of Zope just recently, including ZopeUndo, and they are
> pulled in as separate eggs during the buildout.

The sandbox is kept pretty up to date but I'd forgotten to run buildout  
again. Some minor tests to fix it seems before I can commit.

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-14 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 4/14/10 15:49 , Charlie Clark wrote:
>File  
> "/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/Zope2/src/OFS/SimpleItem.py",
>   
> line 45, in 
>  from App.Undo import UndoSupport
>File  
> "/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/Zope2/src/App/Undo.py",
>   
> line 29, in 
>  from ZopeUndo.Prefix import Prefix
> ImportError: No module named ZopeUndo.Prefix

Have you updated your sandbox and re-run bin/buildout? Several items
were pulled out of Zope just recently, including ZopeUndo, and they are
pulled in as separate eggs during the buildout.

jens

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkvFyXEACgkQRAx5nvEhZLK8AwCfTpxrgib36C8SN+8+kmg2vHpP
2wUAn2juI4e1P12HChJ2MJwhh9iDYCBZ
=ccNT
-END PGP SIGNATURE-
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-14 Thread Charlie Clark
Am 14.04.2010, 15:48 Uhr, schrieb Jens Vagelpohl :

> Traceback?

fuchsia:trunk charlieclark$ bin/test -s Products.CMFCore
Traceback (most recent call last):
   File "bin/test", line 107, in 
 '--test-path',  
'/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/five.localsitemanager/src',
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/__init__.py",
  
line 32, in run
 failed = run_internal(defaults, args, script_parts=script_parts)
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/__init__.py",
  
line 45, in run_internal
 runner.run()
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/runner.py",
  
line 126, in run
 feature.global_setup()
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/find.py",
  
line 418, in global_setup
 tests = find_tests(self.runner.options, self.runner.found_suites)
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/find.py",
  
line 117, in find_tests
 for suite in found_suites:
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/find.py",
  
line 127, in find_suites
 for fpath, package in find_test_files(options):
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/find.py",
  
line 184, in find_test_files
 for f, package in find_test_files_(options):
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/find.py",
  
line 212, in find_test_files_
 for (p, package) in test_dirs(options, {}):
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/find.py",
  
line 268, in test_dirs
 p = import_name(p)
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/eggs/zope.testing-3.9.3-py2.6.egg/zope/testing/testrunner/find.py",
  
line 335, in import_name
 __import__(name)
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/Products.CMFCore/Products/CMFCore/__init__.py",
  
line 18, in 
 import PortalFolder
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/Products.CMFCore/Products/CMFCore/PortalFolder.py",
  
line 26, in 
 from OFS.Folder import Folder
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/Zope2/src/OFS/Folder.py",
  
line 32, in 
 from OFS.ObjectManager import ObjectManager
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/Zope2/src/OFS/ObjectManager.py",
  
line 49, in 
 from webdav.NullResource import NullResource
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/Zope2/src/webdav/NullResource.py",
  
line 33, in 
 from OFS.SimpleItem import Item_w__name__
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/Zope2/src/OFS/SimpleItem.py",
  
line 45, in 
 from App.Undo import UndoSupport
   File  
"/Users/charlieclark/Sites/cmf-svn/CMF.buildout/trunk/src/Zope2/src/App/Undo.py",
  
line 29, in 
 from ZopeUndo.Prefix import Prefix
ImportError: No module named ZopeUndo.Prefix
fuchsia:trunk charlieclark$ bin/zopepy

>>> from ZopeUndo.Prefix import Prefix
Traceback (most recent call last):
   File "", line 1, in 
ImportError: No module named ZopeUndo.Prefix

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-14 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 4/14/10 15:43 , Charlie Clark wrote:
> Am 09.04.2010, 13:38 Uhr, schrieb Jens Vagelpohl :
> 
>> Needless to say, this is more useful when using a CookieCrumbler as a
>> standalone object without a portal. The CMF does not need this, and I
>> would even say it only adds confusion and should be removed.
> 
> I'm ready to commit this (now inherits from UniqueObject, PropertyManager  
> and SimpleItem) but wanted to run the tests to check. Assuming I'm using  
> the CMF-buildout checkout what's the correct way of doing this?
> 
> bin/test -s Products.CMFCore brings up an error related to ZopeUndo

Traceback?

jens

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAkvFx5sACgkQRAx5nvEhZLKvKwCgubw2WJ8JPIgM1G36MPaX47to
dPEAoI6hZyhZGWMiOsK0w+J2/xfEEu1Z
=Hdcb
-END PGP SIGNATURE-
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-14 Thread Charlie Clark
Am 09.04.2010, 13:38 Uhr, schrieb Jens Vagelpohl :

> Needless to say, this is more useful when using a CookieCrumbler as a
> standalone object without a portal. The CMF does not need this, and I
> would even say it only adds confusion and should be removed.

I'm ready to commit this (now inherits from UniqueObject, PropertyManager  
and SimpleItem) but wanted to run the tests to check. Assuming I'm using  
the CMF-buildout checkout what's the correct way of doing this?

bin/test -s Products.CMFCore brings up an error related to ZopeUndo

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-12 Thread yuppie
Hi!


Charlie Clark wrote:
> Am 07.04.2010, 14:27 Uhr, schrieb yuppie:
>> Maybe I should add them to CMFDefault? I guess they need just a few
>> changes to be ready for checkin.
>
> Sounds great. As Tres has noted with ursine_globals - Views can have their
> own tests. Oops, more work! ;-)

At least I have some functional doctests. I hope that's sufficient.

LoginFormView and MailPasswordFormView are now checked in on the trunk. 
But so far they are not hooked up by a profile.

http://svn.zope.org/?rev=110737&view=rev


These issues still need to be resolved:

- Someone has to modify CookieCrumber to make it work with views.

- Maybe the "Constraint not satisfied" error for invalid member IDs or 
email addresses gives too much information: Anonymous users can check 
that way if a user with a specific email address or member ID exists. 
What do others think? Is that a security hole big enough to care about?

- Maybe the code makes some implicit assumptions about the 
authentication process that are not always correct. Would be nice if 
some people could test the views in their customized context. Right now 
you have to call "path/to/siteroot/login.html" directly for testing.


Cheers,

Yuppie
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-09 Thread Charlie Clark
Am 09.04.2010, 13:38 Uhr, schrieb Jens Vagelpohl :

> They can contain objects that can be used as login/logout pages, such as
> DTML methods or Page Templates.

Ah, that's how exUserFolder works.

> Needless to say, this is more useful when using a CookieCrumbler as a
> standalone object without a portal. The CMF does not need this, and I
> would even say it only adds confusion and should be removed.

+1 for that.

I also noticed that ICookieCrumbler is an interface without a purpose at  
the moment. Probably a good time to flesh it out and clean up the  
implementation afterwards.

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-09 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 4/9/10 13:29 , Charlie Clark wrote:
>   Any idea why CookieCrumbler is a Folder?

They can contain objects that can be used as login/logout pages, such as
DTML methods or Page Templates.

Needless to say, this is more useful when using a CookieCrumbler as a
standalone object without a portal. The CMF does not need this, and I
would even say it only adds confusion and should be removed.

jens

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAku/Ec8ACgkQRAx5nvEhZLK3jACgpjEwDmt+0ZDUq1/flgfN4B8e
l2sAoKBp5kOE3vjnsx/6FKnL8VTo/2Rm
=Dcy8
-END PGP SIGNATURE-
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-09 Thread Charlie Clark
Am 09.04.2010, 12:06 Uhr, schrieb yuppie :

> getUnauthorizedURL is already using restrictedTraverse. This only fails
> because it starts from self instead of the parent (=portal root) and the
> login form is usually not registered for the cookie crumbler.
> And it tries to call absolute_url(). Views don't have that method.

Thanks for the explanation.

Adding a method to the view is easy enough:

 def absolute_url(self):
 return "%s/%s" % (self.utool(),
   self.context.auto_login_page)

Although this exposes some of the drawbacks of the current implementation.

> An other approach would be to look up the URLs in the Actions tool. The
> login URL is already specified in the 'user/login' Action, an invisible
> logged_out Action could be added. Long time ago the cookie crumbler had
> a stand alone version, so there are no dependencies on other tools. But
> now I would prefer to avoid redundant settings.

Makes sense. I can see logging in and out as special cases of actions -  
you shouldn't really be able to do without them. But they shouldn't be  
hard-coded into CookieCrumbler.

  Any idea why CookieCrumbler is a Folder?

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-09 Thread yuppie
Hi!


Charlie Clark wrote:
> Am 07.04.2010, 13:47 Uhr, schrieb Jens Vagelpohl:
>
>> I think I would change the cookie crumbler to expect both: Either a page
>> with an ID that the cookie crumbler can traverse to (which is what it
>> does right now), or an ID for a view that you could traverse to using
>> the "@@" notation.
>
> Sort of:
>
> try:
>   page.getId()
> except AttributeError:
>   page.restrictedTraverse() # or getMultiAdapter((context, request), 
> name=)
>
> I'm a bit hazy on traversal. Actually I'm a bit useless on it!

getUnauthorizedURL is already using restrictedTraverse. This only fails 
because it starts from self instead of the parent (=portal root) and the 
login form is usually not registered for the cookie crumbler.

And it tries to call absolute_url(). Views don't have that method.


An other approach would be to look up the URLs in the Actions tool. The 
login URL is already specified in the 'user/login' Action, an invisible 
logged_out Action could be added. Long time ago the cookie crumbler had 
a stand alone version, so there are no dependencies on other tools. But 
now I would prefer to avoid redundant settings.


Cheers,

Yuppie
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-08 Thread yuppie
yuppie wrote:
> Where is auto_login_page used? A quick look at the code tells me it is
> only used for the unauth redirect. And that seems to be generally
> broken, at least on trunk :(
>
> Never noticed that. Doesn't work with my view either.

See https://bugs.launchpad.net/zope-cmf/+bug/558340

Cheers, Yuppie
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-07 Thread yuppie
Hi!


Charlie Clark wrote:
> Am 07.04.2010, 14:27 Uhr, schrieb yuppie:
>
>> I have a LoginFormView and a MailPasswordFormView in my private
>> repository. They allow to insert the email address instead of the member
>> id. The views look up the first user that matches the email address.
>
> No changes required to CookieCrumber?

Where is auto_login_page used? A quick look at the code tells me it is 
only used for the unauth redirect. And that seems to be generally 
broken, at least on trunk :(

Never noticed that. Doesn't work with my view either.


Cheers,

Yuppie
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-07 Thread Charlie Clark
Am 07.04.2010, 14:27 Uhr, schrieb yuppie :

> I have a LoginFormView and a MailPasswordFormView in my private
> repository. They allow to insert the email address instead of the member
> id. The views look up the first user that matches the email address.

No changes required to CookieCrumber?

> Maybe I should add them to CMFDefault? I guess they need just a few
> changes to be ready for checkin.

Sounds great. As Tres has noted with ursine_globals - Views can have their  
own tests. Oops, more work! ;-)

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-07 Thread yuppie
Hi!


Charlie Clark wrote:
> I'm currently working on a project which will hopefully have no TTW code
> so I was hoping to be do without skins - currently I have a my skin on top
> of CMFDefault but it is just main_template and some CSS. If I drop the CMF
> skins entirely I hit some problems as quite a few forms exist only in the
> skins so I'd like to start work on views where required. I suggest keeping
> all the views in "browser" but adding some packages such as "content",
> "membership" and "workflow". I started work on login and logout but I hit
> some problems with CookieCrumbler expecting the login form to have a URL.
> What does a view need to provide to work nicely with this?

I have a LoginFormView and a MailPasswordFormView in my private 
repository. They allow to insert the email address instead of the member 
id. The views look up the first user that matches the email address.

Maybe I should add them to CMFDefault? I guess they need just a few 
changes to be ready for checkin.


Cheers,

Yuppie
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-07 Thread Charlie Clark
Am 07.04.2010, 13:47 Uhr, schrieb Jens Vagelpohl :

> I think I would change the cookie crumbler to expect both: Either a page
> with an ID that the cookie crumbler can traverse to (which is what it
> does right now), or an ID for a view that you could traverse to using
> the "@@" notation.

Sort of:

try:
page.getId()
except AttributeError:
page.restrictedTraverse() # or getMultiAdapter((context, request), 
name=)

I'm a bit hazy on traversal. Actually I'm a bit useless on it!

Charlie
-- 
Charlie Clark
Managing Director
Clark Consulting & Research
German Office
Helmholtzstr. 20
Düsseldorf
D- 40215
Tel: +49-211-600-3657
Mobile: +49-178-782-6226
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests


Re: [Zope-CMF] More browser views

2010-04-07 Thread Jens Vagelpohl
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 4/7/10 13:09 , Charlie Clark wrote:
> Hi,
> 
> I'm currently working on a project which will hopefully have no TTW code  
> so I was hoping to be do without skins - currently I have a my skin on top  
> of CMFDefault but it is just main_template and some CSS. If I drop the CMF  
> skins entirely I hit some problems as quite a few forms exist only in the  
> skins so I'd like to start work on views where required. I suggest keeping  
> all the views in "browser" but adding some packages such as "content",  
> "membership" and "workflow". I started work on login and logout but I hit  
> some problems with CookieCrumbler expecting the login form to have a URL.  
> What does a view need to provide to work nicely with this?

I think I would change the cookie crumbler to expect both: Either a page
with an ID that the cookie crumbler can traverse to (which is what it
does right now), or an ID for a view that you could traverse to using
the "@@" notation.

jens

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.8 (Darwin)

iEYEARECAAYFAku8cMkACgkQRAx5nvEhZLKA2wCfR5xR38bgjTgBIuabsp8osacZ
bqcAnA3houfP+WQiB0pe+Hnq4/QHPhh9
=cq8q
-END PGP SIGNATURE-
___
Zope-CMF maillist  -  Zope-CMF@zope.org
https://mail.zope.org/mailman/listinfo/zope-cmf

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests