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<motgu...@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@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<motgu...@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@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.fernan...@sergas.es
wrote:

Hi!

________________________________________
From: users-boun...@xwiki.org [users-boun...@xwiki.org] On Behalf Of
mohit gupta [motgu...@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@xwiki.org
http://lists.xwiki.org/mailman/listinfo/users

Reply via email to