// // Copyright (c) 2011 Linkeos. // // This file is part of Elveos.org. // Elveos.org is free software: you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the // Free Software Foundation, either version 3 of the License, or (at your // option) any later version. // // Elveos.org is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for // more details. // You should have received a copy of the GNU General Public License along // with Elveos.org. If not, see http://www.gnu.org/licenses/. // package com.bloatit.web.linkable.admin.master; import static com.bloatit.framework.webprocessor.context.Context.tr; import com.bloatit.data.DaoMember.Role; import com.bloatit.data.SessionManager; import com.bloatit.framework.exceptions.highlevel.ShallNotPassException; import com.bloatit.framework.exceptions.lowlevel.RedirectException; import com.bloatit.framework.webprocessor.components.meta.HtmlElement; import com.bloatit.framework.webprocessor.url.Url; import com.bloatit.model.Member; import com.bloatit.model.right.UnauthorizedOperationException; import com.bloatit.web.linkable.master.LoggedElveosPage; import com.bloatit.web.url.LoginPageUrl; public abstract class AdminPage extends LoggedElveosPage { private final Url url2; public AdminPage(final Url url) { super(url); url2 = url; SessionManager.getSessionFactory().getCurrentSession().disableFilter("usercontent.nonDeleted"); } @Override public final HtmlElement createRestrictedContent(final Member loggedUser) throws RedirectException { if (loggedUser.getRole() == Role.ADMIN) { try { return createAdminContent(); } catch (final UnauthorizedOperationException e) { getSession().notifyError(tr("Are you sure you are admin?")); throw new ShallNotPassException("Admin content got a UnauthorizedOperationException", e); } } throw new RedirectException(new LoginPageUrl(url2.urlString())); } @Override public final String getRefusalReason() { return tr("You have to be Admin to use this page."); } protected abstract HtmlElement createAdminContent() throws UnauthorizedOperationException; }