package com.celements.rights; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.xwiki.component.annotation.Component; import org.xwiki.component.annotation.Requirement; import org.xwiki.context.Execution; import org.xwiki.model.reference.DocumentReference; import org.xwiki.script.service.ScriptService; import com.celements.rights.access.RightsAccessScriptService; import com.celements.rights.publication.EPubUnpub; import com.celements.web.service.IWebUtilsService; import com.xpn.xwiki.XWikiContext; import com.xpn.xwiki.XWikiException; import com.xpn.xwiki.user.api.XWikiRightService; import com.xpn.xwiki.web.Utils; /** * @deprecated use RightsAccessScriptService instead */ @Component("celementsright") @Deprecated public class CelementsRightScriptService implements ScriptService { private static Log LOGGER = LogFactory.getFactory().getInstance( CelementsRightScriptService.class); @Requirement(RightsAccessScriptService.NAME) ScriptService rightsAccess; @Requirement Execution execution; private RightsAccessScriptService getRightsAccess() { return (RightsAccessScriptService) rightsAccess; } /** * @deprecated use RightsAccessScriptService.isPublishActive instead */ @Deprecated public boolean publicationActivated(DocumentReference forDoc) { return getRightsAccess().isPublishActive(forDoc); } /** * @deprecated use RightsAccessScriptService.hasAccessLevel instead */ @Deprecated public boolean hasAccessLevelPublished(String right, String username, DocumentReference docname) { return hasAccessLevel(right, username, getWebUtils().getRefLocalSerializer().serialize(docname), EPubUnpub.PUBLISHED); } /** * @deprecated use RightsAccessScriptService.hasAccessLevel instead */ @Deprecated public boolean hasAccessLevelUnpublished(String right, String username, DocumentReference docname) { return hasAccessLevel(right, username, getWebUtils().getRefLocalSerializer().serialize(docname), EPubUnpub.UNPUBLISHED); } /** * @deprecated use RightsAccessScriptService.hasAccessLevel instead */ @Deprecated boolean hasAccessLevel(String right, String username, String docname, EPubUnpub unpublished) { XWikiRightService rightService = getContext().getWiki().getRightService(); if (rightService instanceof CelementsRightServiceImpl) { // TODO replace with overridePubUnpub on PublicationService getContext().put("overridePubCheck", unpublished); } else { LOGGER.warn("Needs CelementsRightServiceImpl for publish / unpublish to work"); } try { return rightService.hasAccessLevel(right, username, docname, getContext()); } catch (XWikiException xwe) { LOGGER.error("hasAccessLevelPublished: Exception while checking access level for " + "right=" + right + ", username=" + username + ", docname=" + docname, xwe); return false; } } private XWikiContext getContext() { return (XWikiContext) execution.getContext().getProperty("xwikicontext"); } private IWebUtilsService getWebUtils() { return (IWebUtilsService) Utils.getComponent(IWebUtilsService.class); } }