Hi,
Gerritjan Koekkoek wrote:
Hi,
The script works fine;
One modification required (#if($counter > 0) ==> #if($counter == 0)
I'm afraid I don't understand the condition yet! :-( Do you want that
any user belonging to any group but XWikiAllGroup is redirected to
his/her profile? Or should be only XWikAllGroup members whom must be
redirected to his/her profile page?
Just trying to understand why do you need == instead o >. Thanks!
But this only works when user login is on homepage, in
our use cases there are also other pages where a guest can decide to login
Is there a vm script that is always triggered when user does login?
OK! I've not taken this into account! login.vm in your /templates folder
seems to be the right place to tweak.
Gerritjan
Op 24 okt 2010, om 01:52 heeft [Ricardo Rodriguez] eBioTIC. het volgende geschreven:
Hi,
Gerritjan Koekkoek wrote:
Hi,
We would like to, conditionally, redirect users who log in to their profile page. (in
our case; XWiki.<username>)
The condition is: User is not in ANY OTHER GROUP then XWikiAllGroup.
How can I do this most elegantly, modifying as little as possible of the standard pages
that come with a distribution of XWIKI
This is not elegant, but I think it works:
#set($counter = 0)
#set($user = $xwiki.getUser())
#set($userContext = $context.user)
#set($query = ", BaseObject as obj, StringProperty as prop where
doc.fullName = obj.name and obj.className='XWiki.XWikiGroups' and
doc.fullName <> 'XWiki.XWikiGroupTemplate' and doc.fullName <>
'XWiki.XWikiAllGroup' order by doc.fullName asc")
#set($results=$xwiki.searchDocuments($query))
<p/>
#foreach($item in $results)
#if($user.isUserInGroup($item))
#set($counter = $counter+1)
#end
#end
#if($counter > 0)
$response.sendRedirect($xwiki.getURL($userContext))
#end
You could copy and paste in your WebHome or create an ad hoc document
and use #includeInContext('YourSpace.YourDocument') to include it in
your WebHome.
HTH,
Ricardo
Greetings!
--
Ricardo RodrÃguez
CTO
eBioTIC.
Life Sciences, Data Modeling and Information Management Systems