Yes, I won't know if it's updated or created.

Now, using 'XWiki.XWikiRights_users = XWiki.Me' would not be sufficient
for the use case; what happens if you want to create 2 objects
'XWiki.XWikiRights'?

Can we imagine to introduce a new notation to explicitly mean that you
want to create a new object, like 'new_XWiki.XWikiRights_0_users' or
'XWiki.XWikiRights_new_0_users' or 'XWiki.XWikiRights_n0_users'?

This way, we can filter as following:
* If you try to update an object with 'XWiki.XWikiRights_0_users' and
the object #0 exists, the property is updated (use case already
existing)
* If you try to update an object with 'XWiki.XWikiRights_0_users' and
the object #0 doesn't exist, the parameter has no effect (use case
already existing)
* If you try to create an object with 'new_XWiki.XWikiRights_0_users'
and the object #0 exists, the parameter has no effect
* If you try to create an object with 'new_XWiki.XWikiRights_0_users'
and the object #0 doesn't exist, the object is created and the property
initialized

Thanks
--
Jean

On jeu., 2014-04-10 at 11:59 +0300, Marius Dumitru Florea wrote:
> So if I put XWiki.XWikiRights_56_users on the request and there's no
> rights object what do you do? Create an object with number 0? Create
> an object with number 56? And if you want to add a new object how
> would you know the object number to put on the request so that you
> don't update existing objects instead?
> 
> The current behaviour is this:
> 
> 1) You ask the system to add a new object (i.e. allocate an object
> number) using the object add action, possibly passing property values
> like this
> 
> XWiki.XWikiRights_users = XWiki.Me
> 
> 2) You use the allocated number to update the object, passing property
> values like this
> 
> XWiki.XWikiRights_N_users = XWiki.Me
> 
> where N is the allocated object number.
> 
> What you want is to do this in a single step, but you won't
> know/control if the object is added or updated.
> 
> Thanks,
> Marius
> 
> On Thu, Apr 10, 2014 at 11:36 AM, Jean SIMARD <[email protected]> wrote:
> > Hi devs,
> >
> > In XWiki, if you send a POST request at the following URL
> > ('MySpace.MyPage' is a document that doesn't exist at the moment)
> >
> > /bin/save/MySpace/MyPage
> >
> > with the following HTTP parameters:
> >
> > * template=MySpace.MyTemplate
> > * XWiki.XWikiRights_0_users=XWiki.Me
> > * <others parameters>
> >
> > with 'MySpace.MyTemplate' a template document and 'XWiki.Me' a user of
> > the wiki.
> >
> > 2 cases:
> >
> > 1. If 'MySpace.MyTemplate' contains a 'XWiki.XWikiRights' object, then
> > the resulting document 'MySpace.MyPage' will have this object with its
> > property 'users' initialize with the value 'XWiki.Me' (see HTTP
> > parameters)
> > 2. If 'MySpace.MyTemplate' does not contain a 'XWiki.XWikiRights'
> > object, the resulting document 'MySpace.MyPage' will not contain it
> > either
> >
> > ### PROPOSAL
> > Create automatically the objects if they don't exist in the template
> > document.
> > ###
> >
> > To make it possible, it seems that we would need to refactor the method
> > 'readObjectsFromForm(EditForm, XWikiContext)' in the
> > 'com.xpn.xwiki.doc.XWikiDocument' class.  And probably modify also the
> > 'getObject(String)' from 'com.xpn.xwiki.web.EditForm' class.
> >
> > 2 things to take care:
> > * It seems there is no unit test for these methods.
> > * May this proposal be a security problem?
> >
> > WDYT?
> > --
> > Jean
> >
> > _______________________________________________
> > devs mailing list
> > [email protected]
> > http://lists.xwiki.org/mailman/listinfo/devs
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to