Hi does someone please see what i am getting wrong here? The rights are not
just beeing set.
protected void addUserToGroup(String xwikiname, XWikiContext context)
throws XWikiException {
//
// Create a group and add the user to the newly created group.
BaseClass groupClass = context.getWiki().getGroupClass(context);
// Get document representing group
DocumentReference groupDocumentReference = new DocumentReference(
context.getDatabase(), "Myspace", "Testgroup");
XWikiDocument groupDoc = context.getWiki().getDocument(
groupDocumentReference, context);
BaseClass rightsClass = context.getWiki().getRightsClass(context);
// trying to see how to add rights
if (groupDoc.isNew()) {
log.error("Creating Test group");
synchronized (groupDoc) {
// Add a member object to document
BaseObject memberObj = groupDoc.newXObject(
groupClass.getDocumentReference(), context);
memberObj.setStringValue("member", xwikiname);
// groupDoc.getObject("XWiki.XWikiGlobalRights");
// If the document is new, set its content
groupDoc.setSyntax(Syntax.XWIKI_2_1);
groupDoc.setContent("{{include
document='XWiki.XWikiGroupSheet' /}}");
// Save modifications
context.getWiki().saveDocument(groupDoc, context);
DocumentReference spacePrefsRef = new
DocumentReference(context
.getWiki().getDatabase(), "Myspace",
"WebPreferences");
XWikiDocument spacePrefs = context.getWiki().getDocument(
spacePrefsRef, context);
BaseObject rights = spacePrefs.newXObject(
rightsClass.getDocumentReference(), context);
rights.setStringValue("groups",
"XWiki.XWikiAllGroup");
rights.setStringValue("levels", "view,edit");
rights.setStringValue("users", "");
rights.setIntValue("deny", 1);
context.getWiki().saveDocument(spacePrefs, context);
}
log.error("Added user" + xwikiname + "to Testgroup");
}
}
thanks in advance.
2014-04-19 16:09 GMT+02:00 Clemens Klein-Robbenhaar <
c.robbenhaar(a)espresto.com>gt;:
Hi,
to add access rights to a space, you have to add an "XWiki.XWikiRight"
object to the page <spacename>."WebPreferences".
I have not tested it, but it should look somewhat like:
DocumentReference spacePrefsReference = new DocumentReference(
context.getWiki().getName(), spaceName, "WebPreferences")
XWikiDocument spacePrefs =
context.getWiki().getDocument(spacePrefsReference, context)
[...]
then add the "rights" object like you did in your code, except that you
add it to spacePrefs instead of groupDoc.
(I guess you also need to set
rights.setStringValue("levels","view,edit"); instead of doing two
calls)
Do not forget to save spacePrefs, too.
hope this helps,
clemens
On 04/19/2014 08:14 AM, Daniel Ebanja wrote:
Hi Developers,
i have been trying this the whole time already and decided to ask for
help.
I want to create a space, a group and add a
member to the group. The
space
should only be viewed by this group.
Here is my code till now. The Space is created, the group too and the
user
login in is added to the group. I can't
figure how to assign the rights.
The CODE:
protected void addUserToGroup(String xwikiname, XWikiContext context)
throws XWikiException{
//
// Create a group and add the user to the newly created group.
BaseClass groupClass = context.getWiki().getGroupClass(context);
// Get document representing group
DocumentReference groupDocumentReference = new DocumentReference(
context.getDatabase(), "myspace",
"Testgroup");
XWikiDocument groupDoc = context.getWiki().getDocument(
groupDocumentReference, context);
BaseClass rightsClass =
context.getWiki().getRightsClass(context);
if (groupDoc.isNew()) {
log.error("Creating Test group");
synchronized (groupDoc) {
// Add a member object to document
BaseObject memberObj = groupDoc.newXObject(
groupClass.getDocumentReference(), context);
memberObj.setStringValue("member", xwikiname);
BaseObject rights=
groupDoc.newXObject(rightsClass.getDocumentReference(),context);
rights.setStringValue("groups", "Testgroup");
rights.setStringValue("levels","view");
rights.setStringValue("levels", "edit");
rights.setStringValue("users", "");
rights.setIntValue("allow",1);
//groupDoc.getObject("XWiki.XWikiGlobalRights");
groupDoc.setSyntax(Syntax.XWIKI_2_1);
groupDoc.setContent("{{include
document='XWiki.XWikiGroupSheet' /}}");
// Save modifications
context.getWiki().saveDocument(groupDoc, context);
}
log.error("Added user"+ xwikiname +"to Testgroup");
}
}
Thanks for any help.
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
users(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/users
--
Ebanja Daniel
Informatikstudent der Hochschule Darmstadt
Deutschland