On 04/08/2012 11:34 AM, mohit gupta wrote:
I figured out what was the issue It needs to be
Document doc=xwikiApi.getDocument("MySpace.
WebPreferences");* instead of* Document
doc=xwikiApi.getDocument("MySpace.WebHome");
After this worked perfectly for assigning the rights to single. But in my
scneario i need to assign different rights to different users.Like i need
to assign all possible rights to admin user but only view rights to general
user. For this i have below code snippet
doc=xwikiApi.getDocument("MySpace.WebPreferences");
com.xpn.xwiki.api.Object
rightsObject=doc.getObject("XWiki.XWikiGlobalRights",
true);//XWiki.XWikiRightsXWiki.XWikiGlobalRights
rightsObject.set("users", "XWiki.MySpaceAdminUser");
rightsObject.set("levels", "view,comment,edit,delete,admin");
rightsObject.set("allow", "1");
doc.save();//line1
// Till here i see on UI all rights are assigned to MySpaceAdminUser
Document doc1=xwikiApi.getDocument("MySpace.WebPreferences");
com.xpn.xwiki.api.Object
rightsObject1=doc1.getObject("XWiki.XWikiGlobalRights",
true);//XWiki.XWikiRightsXWiki.XWikiGlobalRights
rightsObject1.set("users", "XWiki.XWiki.MySpaceGeneralUser");
rightsObject1.set("levels", "view");
rightsObject1.set("allow", "1");
doc1.save();//line2
// But here i see on UI all rights are revoked from MySpaceAdminUser and
view right is assigned to MySpaceGeneralUser. Not sure why line 2 is
revoking the rights given at line 1
doc.getObject and doc1.getObject return the exact same object, not a new
one. So instead of adding a new rights object for general users, you
replace the values for the admin users. You should use
doc.newObject("XWiki.XWikiGlobalRights").
You should also reuse the same document, no need to get it twice, and
only call save once at the end.
---------- Forwarded message ----------
From: mohit gupta<motgupta(a)gmail.com>
Date: Sun, Apr 8, 2012 at 7:34 PM
Subject: Fwd: [xwiki-users] Looking for these xwiki java API'S or java
class containing these functionality?
To: XWiki Users<users(a)xwiki.org>
I tried using thbelow lines also
com.xpn.xwiki.api.Object rightsObject=doc.getObject("XWiki.XWikiRights",
true); instead of
com.xpn.xwiki.api.Object
rightsObject=doc.getObject("XWiki.XWikiGlobalRights", true);[Though i want
to use XWiki.XWikiGlobalRights as i want to set the rights at space level
instead of page level]
Also i tried
rightsObject.set("levels", "view,comment,edit,delete,admin"); instead
of
rightsObject.set("levels", "admin");
But still i do not see any rights assigned to mu user.
---------- Forwarded message ----------
From: mohit gupta<motgupta(a)gmail.com>
Date: Sun, Apr 8, 2012 at 5:41 PM
Subject: Re: [xwiki-users] Looking for these xwiki java API'S or java class
containing these functionality?
To: XWiki Users<users(a)xwiki.org>
Hi Recardo,
After implementation i successfully created the space *but could not
assgin the assign the rights successfully(point 2 in below mail trail)*.
Here is the code snippet that created the space and assign the rights to
user (MySpaceUser) on this created space. I am trying to give admin rights
to user MySpaceUser on space MySpace but when i go space preferences of
MySpace, i do not see admin right checkbox as checked. Not sure am i
missing something here?
*com.xpn.xwiki.api.XWiki xwikiApi= new
com.xpn.xwiki.api.XWiki(context.getWiki(),context);
Document doc=xwikiApi.getDocument("MySpace.WebHome");
doc.setContent("Created the space programmatically");
doc.save();
com.xpn.xwiki.api.Object
rightsObject=doc.getObject("XWiki.XWikiGlobalRights", true);
rightsObject.set("users", "XWiki.MySpaceUser");
rightsObject.set("levels", "admin");
rightsObject.set("allow", 1);
doc.save();
*
On Sat, Apr 7, 2012 at 3:29 AM,<Ricardo.Julio.Rodriguez.Fernandez(a)sergas.es
wrote:
> Hi!
>
>> ________________________________________
>> From: users-bounces(a)xwiki.org [users-bounces(a)xwiki.org] On Behalf Of
> mohit gupta [motgupta(a)gmail.com]
>> Sent: 06 April 2012 19:42
>> To: XWiki Users
>> Subject: [xwiki-users] Looking for these xwiki java API'S or java class
> containing these functionality?
>>
>
> The first thing I would like to understand someday is what does API apply
> to! I mean, has XWiki a single API? Or has it a lot of them? Perhaps it is
> only a matter of taste, but I do really like to know how to correctly use
> this concept.
>
> Can Method and API be indistinctly used?
>
>> Hi Folks,
>>
>> I am looking for three xwiki java api's that do the following
> functionality
>> 1) I give the space name to api and it creates the space with default
> home
>> page .
>
> Perhaps this could be useful:
>
> {{velocity}}
> #set ($mydoc = $xwiki.getDocument("Dummy.WebHome"))
> $mydoc.setContent("content")
> $mydoc.save()
> {{/velocity}}
>
>> 2)I give userName,SpaceName and rightsName(like view,edit,delete,admin)
> to
>> api and it gives these rights on given space name for the given username
>
> Does this page through any light to your doubt?
>
>
http://extensions.xwiki.org/xwiki/bin/view/Extension/Setting+Rights
>
>> 3)I give spaceName to api and it gives me whether the given space exists
> or
>> not?
>
> I don't know how XWiki checks if a space exists when entered in an URL,
> but perhaps this could help...
>
> $xwiki.getSpaceDocsName('YourSpaceHere).size()
>
> If size> 0 does mean that YourSpace exists!
>
>> I was looking for three apis in classes ---com.xpn.xwiki.xwiki.java and
>> com.xpn.xwiki.api.xwiki.java but i could not locate these. But i am sure
>> these api's must
>> be existing (as user is able to do these stuff from user interface). I
> will
>> be grateful if i can be directed to these apis?
>>
>> Thanks in advance.
>
> HTH!
>
--
Sergiu Dumitriu
http://purl.org/net/sergiu/