Witam. Mam po zalogowaniu administratora mam stronę, z poziomu, której mogę przejść do edycji wszystkich kont administratorów. Jednak zależałoby mi aby na liście, którą mogę edytować zostało pominięte konto zalogowanego administratora. I mam problem jak to zrobić. Mój panel admina:
<p:menu styleClass="selection">
<p:menuitem action="#{userMB.adminList()}" value="Admini" icon="ui-icon-triangle-1-e"/>
</p:menu>
Metoda adminList() służy do nawigacji:
public String adminList() {
return "adminList";
}
Kiedy ją wywołamy to przechodzimy do strony z listą adminów: adminList:
<navigation-case>
<from-outcome>adminList</from-outcome>
<to-view-id>/protected/admin/adminList.xhtml</to-view-id>
<redirect/>
</navigation-case>
na której mamy tabelę:
<p:dataTable styleClass="table" value="#{userMB.allAdmins}" var="admin" paginator="true" rows="15" rowKey="#{admin.id}" selection="#{userMB.user}" selectionMode="single" >
Tabela jest wypełniana przez wywołanie metdoy allAdmins():
public List<User> getAllAdmins() {
return userDao.findAllAdmins();
}
metoda z dao:
@Override
public List<User> findAllAdmins() {
Query q = em.createQuery("SELECT u FROM User u WHERE u.role = 'admin'");
List<User> users = q.getResultList();
return users;
}
I tutaj mój problem skąd wziąć ten swój id. Jeśli udało by mi się go w jakiś sposób pobrać to wtedy zedytowałbym swoje zapytanie w metodze
findAllAdmins()
np. na: "SELECT u FROM User u WHERE u.role = 'admin' where u.id <> 'moje ID'"
Ale nie wiem jak się dobrać do tego Id, jak je przekazać do metody w beanie JSFa
```java
getAllAdmins()
Nie mam bardzo jak przekazać tego parametru...
Dodam jeszcze bo może to pomoże, że w czasie trwania sesji użytkownika mam beana, który żyje całą sesję loginMB i w nim przechowywane dane aktualnie zalogowanego użytkownika, więc z tego można by ewentualnie też pobrać id, ale też nie przychodzi mi do głowy jak.