[Seaside] Storing WAComponent / WATask etc. in magma
philippe.marschall at gmail.com
Tue Dec 23 12:06:45 UTC 2008
2008/12/23 Florian Obser <florian at narrans.de>:
> Hi all,
> I'm writing a seaside application in which I'm modeling the access a
> logged in user has on various object as views / tasks on collections (or
> subsets of collections) which are stored in magma.
> e.g. in terms of a blog application: blog posts are stored in magma in a
> collection. The master user has access to all posts but rather than
> having an instance variable which holds a collection of blog posts the
> user has an instance variable which holds a view on the blog posts to
> which this user has access. This view is a subclass of WAComponent or in
> case of editing / creating a new blog post a subclass of WATask. (Other
> users have views which operate on different subsets of the blog posts
> collection, but I can have a second master user simply by providing a
> view on all posts). I hope this makes sense...
Don't do that. Components are session specific.
> At first I stored these components / tasks in magma but it didn't work.
> I changed the design and created a new class hierarchy subclassing
> Object and stored these objects in magma. These new classes essentially
> store configuration data for the different views and provide a single
> message which creates a new WAComponent (or task).
That's the way to go. You don't necessarily have to use a class
hierarchy, you can use arbitrary configuration objects that hold on to
class names and other configuration values.
> Later I noticed two thinks:
> 1) The reason why my application didn't work as expected probably hat
> nothing to do with storing the components in magma
> 2) I'm creating two class hierarchies which do essentially the same,
> there is one class to store the view in magma (subclassing Object)
> and another class subclassing WAComponent to create the view.
> Before changing everything back (this will be a lot of work) and storing
> WAComponents in magma I wanted to ask first if this will work? Do I have
> to expect some strange behavior? Is this a good idea[tm]?
More information about the seaside