Hi,
Check
http://code.xwiki.org/xwiki/bin/view/Snippets/Create200DummyUsersSnippet
for example.
A user is an object in xwiki.
Thanks
-Vincent
On Feb 2, 2009, at 6:51 PM, Juergen Lorenz Simon wrote:
Hi,
i'm trying to do a conceptually very, very simple task and find myself
obscured to death by
xwiki's data model (shall we call it one for now ...)
After hitting my head on the lack of API for user, I somehow (dont ask
me how) manage to
assemble some code for creating a user. This CAN NOT be right?!
Map map = Util.getObject(context.getRequest(),
"register");
String content = "#includeForm(\"XWiki.XWikiUserSheet
\")";
String template =
context.getRequest().getParameter("template");
String parent =
context.getRequest().getParameter("parent");
if ("superadmin".equalsIgnoreCase(wikiname)) {
log.error("Can't register user 'superadmin'. Name
reserved.");
return;
}
try {
if (!
context.getUtil().match(context.getWiki().Param("xwiki.validusername",
"/^[a-zA-Z0-9_]+$/"), wikiname)) {
log.warn("Illegal username
'"+wikiname+"'");
}
} catch (RuntimeException ex) {
log.error("Invalid regular expression for
xwiki.validusername", ex);
if (!context.getUtil().match("/^[a-zA-Z0-9_]+$/",
wikiname)) {
log.error("Illegal username
'"+wikiname+"'");
}
}
if ((template != null) && (!template.equals(""))) {
XWikiDocument tdoc =
context.getWiki().getDocument(template, context);
if ((!tdoc.isNew())) {
content = tdoc.getContent();
}
}
if ((parent == null) || (parent.equals(""))) {
parent = "XWiki.XWikiUsers";
}
// add password
map.put("password", wikiname);
map.put("active", "1");
if (log.isDebugEnabled()) {
log.debug("Creating user with parameters:
"+map.toString());
}
int result = -1;
try {
result = context.getWiki().createUser(wikiname, map,
parent, content, "edit", context);
log.info("User " + xwikiUser + " created
successfully.");
userSuccessful = true;
} catch (Exception e) {
log.error("Exception when creating user "+wikiname,e);
}
if (result!=1) {
log.error("Creating user " + xwikiUser + " has failed
with status "+result);
}
Is this REALLY necessary? The task of creating a new user can be
achieved easier, surely?
Now I did have some code for checking if a given group exists, if not
create it. Then check if the user is in the group
and of not, add him. All my attempts in this direction were rewarded
with frustration. I find the data model (or perhaps
the abscence of cleaner structure for these things) highly obscure and
impossible to penetrate without a proper form
of documentation.
Does such documentation exist? A few simple examples perhaps?
Best Regards,
J.L.Simon
Thanks
-Vincent
http://xwiki.com
http://xwiki.org
http://massol.net