Thanks sergiu. I just figured it out :)
On Sun, Apr 8, 2012 at 9:15 PM, Sergiu Dumitriu <sergiu(a)xwiki.com> wrote:
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 <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/
______________________________**_________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/**mailman/listinfo/users<http://lists.xwiki.org/m…