[ZWeb] Problems with /acl_users
Martijn Pieters
mj@digicool.com
Tue, 26 Sep 2000 16:02:26 +0200
On Tue, Sep 26, 2000 at 09:13:22AM -0400, Shane Hathaway wrote:
> Here's what we did, using a simple Python interpreter. (Of course this
> only works if you're logged in to www.zope.org.)
>
> INSTANCE_HOME=/usr/local/dc/org python
>
> import ZServer, Zope, BTree
> app = Zope.app()
> newdata = BTree.BTree()
> for key, value in app.acl_users.data:
> newdata[key] = value
> app.acl_users.data = newdata
> get_transaction().commit()
>
> The process could be reversed by switching to a PersistentMapping again.
I can't connect to the server, it seems:
INSTANCE_HOME=/usr/local/dc/org python
...
>>> import Zope
Traceback (innermost last):
File "<stdin>", line 1, in ?
File "/usr/local/dc/Zope2/lib/python/Zope/__init__.py", line 118, in ?
DB=ZODB.DB(DB)
File "/usr/local/dc/zope_soft/lib/python/ZODB/DB.py", line 155, in __init__
storage.tpc_begin(t)
File "/usr/local/dc/zope_soft/lib/python/ZEO/ClientStorage.py", line 457, in tpc_begin
if not self._connected: raise ClientDisconnected()
ZEO.ClientStorage.ClientDisconnected
> > > I can't list all the usernames in /acl_users anymore:
> > >
> > > Error type: AttributeError
> > > Error value: 'BTreeItems' object has no attribute 'sort'
>
> It would be possible to fix this by calling list() on the returned set.
This means changing AccessControl/User.py, or implementing an External
Method version of getUserNames() (and getUsers())
> We thought PersistentMapping and BTree had a similar enough interface.
> Again, this can be fixed, but perhaps we were overconfident because of our
> success in "exorcising" the haunted zope.org. /Members is now a
> BasicBTreeFolder, which results in fewer ghosts.
I saw this as well. I believe that __getattr__ isn't implemented on
BTreeFolder? app.Members.mj didn't work.
--
Martijn Pieters
| Software Engineer mailto:mj@digicool.com
| Digital Creations http://www.digicool.com/
| Creators of Zope http://www.zope.org/
---------------------------------------------