Rendered problem
morellik Oct 11, 2013 8:14 AMDear,
I've to display an icon and related action only if an user appears in a (ManyToMany) list. I created a method to return True or False but doesn't work.
<a4j:commandLink id="Share" action="#{localUserEJB.shareUserRequest(n.email, n.firstName, n.lastName, n.creator.email)}"
rendered="#{request.isUserInRole('ADMINISTRATOR') and
(n.groups.get(0) eq 'UPLOADUSER' || n.groups.get(0) eq 'USER')
and !localUserEJB.isOwner(n.admin, localUserEJB.principal)
}">
<h:graphicImage id="userShare"
name="user-share.png"
library="images"
alt="Share"
/>
</a4j:commandLink>
public Boolean isOwner(List admin, String principal) {
Boolean found = Boolean.FALSE;
Class cls = admin.getClass();
System.out.println(cls.getName());
for (int i = 0; i < admin.size(); i++) {
System.out.println(admin.get(i) + " " + principal);
if (admin.get(i).equals(principal)) {
System.out.println("TRUE" + admin.get(0));
found = Boolean.TRUE;
}
}
System.out.println(found);
return found;
}
The admin list appears like an org.eclipse.persistence.indirection.IndirectList and I don't know how to compare a String object with each element of the list. I tryied also admin,compare without results. The method returns FALSE.
The output is that:
INFO: org.eclipse.persistence.indirection.IndirectList
INFO: morelli@test.it rossi@test.it
INFO: rossi@test.it rossi@test.it
INFO: false
INFO: org.eclipse.persistence.indirection.IndirectList
INFO: morelli@test.it rossi@test.it
INFO: rossi@test.it rossi@test.it
INFO: false
Where I wrong?