I had a hard time working with user roles in XPages.
I used to the following procedure which is a server script equivalent of the lotus script equivalent of the @UserRoles which wont work on server side javascript :) (confusing aaha...)
var acl:NotesACL= database.getACL();
var entry:NotesACLEntry = acl.getEntry(@Name("[CN]",@UserName()))
if (entry==null) {
entry = acl.getEntry(session.getUserName())
}
if (entry==null) {
return "";
}
entry.getRoles();
It did work to some extent. But I really had a very tough time with this. It seemed to work fine for a while but to my astonishment it started showing only my server's role enabled on the database . It was very irritating and I felt ridiculous about it.
Later I explored the web to arrive at the fairly simple decent solution as follows,
context.getUser().getRoles();
Yes the above mentioned line did the job for me. Hope this helps some one :)
Welcome to the club! I ran into the same thing 2 weeks ago. There are some useful comments on my blog entry too
ReplyDeletehttp://www.bleedyellow.com/blogs/patpicos/entry/xpages_userroles_or_lack_of_and_name_fields_issue_displaying_names_data?lang=en
Went through the post. Good Stuff. Definetly @IsMember is better that context.getUser().getRoles().contains("[Role]");
ReplyDeleteWe can still take up Tim's suggestion of doing @UserRoles
:)
I was unable to get the single context line to work. Everything came back as false.
ReplyDeleteHowever using the ACL entry I was able to gain access to my roles.
Well, seems like some thing worked for you atlast. Should be a relief. Can you explain your problem a little more in detail so that I can possibly try and reproduce it. May be I can find a fix if I understand what is wrong
ReplyDeleteHave stumbled upon something more useful - http://ozinisle.blogspot.in/2013/11/roles-in-xpages-part.html
ReplyDeleteThis comment has been removed by the author.
ReplyDelete