package hu.sch.web.kp; import hu.sch.domain.Group; import hu.sch.domain.Semester; import hu.sch.domain.user.User; import hu.sch.domain.enums.ValuationPeriod; import hu.sch.services.GroupManagerLocal; import hu.sch.services.MembershipManagerLocal; import hu.sch.services.PostManagerLocal; import hu.sch.services.exceptions.NoSuchAttributeException; import hu.sch.services.SystemManagerLocal; import hu.sch.web.common.PekPage; import javax.inject.Inject; import org.apache.wicket.markup.html.panel.Panel; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author hege */ public abstract class KorokPage extends PekPage { @Inject protected SystemManagerLocal systemManager; @Inject protected PostManagerLocal postManager; @Inject protected GroupManagerLocal groupManager; @Inject protected MembershipManagerLocal membershipManager; private static final Logger log = LoggerFactory.getLogger(KorokPage.class); @Override protected String getTitle() { return "VIR Körök"; } @Override protected String getCss() { return "korok-style.css"; } @Override protected String getFavicon() { return "favicon-korok.ico"; } @Override protected Panel getHeaderPanel(String id) { return new KorokHeaderPanel(id, isUserGroupLeaderInSomeGroup(), isCurrentUserJETI() && systemManager.getErtekelesIdoszak() == ValuationPeriod.ERTEKELESELBIRALAS, isCurrentUserJETI() || isCurrentUserSVIE() || isCurrentUserAdmin()); } protected final Semester getSemester() { Semester sz = null; try { sz = systemManager.getSzemeszter(); } catch (NoSuchAttributeException ex) { log.warn("Attribute for semester isn't set in the database.", ex); } return sz; } protected final boolean isUserGroupLeader(Group group) { return getAuthorizationComponent().isGroupLeaderInGroup(getRequest(), group); } protected final boolean isUserGroupLeaderInSomeGroup() { return getAuthorizationComponent().isGroupLeaderInSomeGroup(getRequest()); } /** * A beloginolt felhasználót ellenőrizzük, hogy van-e delegált posztja az adott csoportban * * @param group melyik csoportban vizsgálódunk * @return Van-e delegált posztja a csoportban? */ protected final boolean hasUserDelegatedPostInGroup(Group group) { User user = getUser(); if (user == null) { return false; } return postManager.hasUserDelegatedPostInGroup(group, user); } /** * Az adott felhasználót ellenőrizzük, hogy van-e delegált posztja az adott csoportban * * @param user kérdéses felhasználó * @param group melyik csoportban vizsgálódunk * @return Van-e delegált posztja a csoportban? */ protected final boolean hasUserDelegatedPostInGroup(User user, Group group) { if (user == null) { return false; } return postManager.hasUserDelegatedPostInGroup(group, user); } }