use of com.agiletec.plugins.jacms.aps.system.services.content.IContentManager in project entando-core by entando.
the class TestContentAuthorization method testCheckAdminUser.
public void testCheckAdminUser() throws Throwable {
UserDetails adminUser = this.getUser("admin");
assertNotNull(adminUser);
assertEquals("admin", adminUser.getUsername());
assertEquals(1, adminUser.getAuthorizations().size());
IContentManager contentManager = (IContentManager) this.getService(JacmsSystemConstants.CONTENT_MANAGER);
Content content = contentManager.loadContent("ART111", true);
boolean check = this._authorizationManager.isAuth(adminUser, content);
assertTrue(check);
content = contentManager.loadContent("EVN25", true);
check = this._authorizationManager.isAuth(adminUser, content);
assertTrue(check);
content = contentManager.loadContent("EVN41", true);
check = this._authorizationManager.isAuth(adminUser, content);
assertTrue(check);
}
use of com.agiletec.plugins.jacms.aps.system.services.content.IContentManager in project entando-core by entando.
the class PageLinkAction method getContentVo.
public ContentRecordVO getContentVo(String contentId) {
ContentRecordVO contentVo = null;
try {
IContentManager contentManager = (IContentManager) ApsWebApplicationUtils.getBean(JacmsSystemConstants.CONTENT_MANAGER, this.getRequest());
contentVo = contentManager.loadContentVO(contentId);
} catch (Throwable t) {
_logger.error("error in getContentVo for content {}", contentId, t);
throw new RuntimeException("Errore in caricamento contenuto vo", t);
}
return contentVo;
}
use of com.agiletec.plugins.jacms.aps.system.services.content.IContentManager in project entando-core by entando.
the class ContentActionHelper method scanReferences.
/**
* Controlla le referenziazioni di un contenuto. Verifica la referenziazione
* di un contenuto con altri contenuti o pagine nel caso di operazioni di
* ripubblicazione di contenuti non del gruppo ad accesso libero.
* L'operazione si rende necessaria per ovviare a casi nel cui il contenuto,
* di un particolare gruppo, sia stato pubblicato precedentemente in una
* pagina o referenziato in un'altro contenuto grazie alla associazione di
* questo con altri gruppi abilitati alla visualizzazione. Il controllo
* evidenzia quali devono essere i gruppi al quale il contenuto deve essere
* necessariamente associato (ed il perchè) per salvaguardare le precedenti
* relazioni.
*
* @param content
* Il contenuto da analizzare.
* @param action
* L'action da valorizzare con i messaggi di errore.
* @throws ApsSystemException
* In caso di errore.
*/
@Override
public void scanReferences(Content content, ActionSupport action) throws ApsSystemException {
if (!Group.FREE_GROUP_NAME.equals(content.getMainGroup()) && !content.getGroups().contains(Group.FREE_GROUP_NAME)) {
HttpServletRequest request = ServletActionContext.getRequest();
try {
String[] defNames = ApsWebApplicationUtils.getWebApplicationContext(request).getBeanNamesForType(ContentUtilizer.class);
for (int i = 0; i < defNames.length; i++) {
Object service = null;
try {
service = ApsWebApplicationUtils.getWebApplicationContext(request).getBean(defNames[i]);
} catch (Throwable t) {
_logger.error("error loading ReferencingObject ", t);
service = null;
}
if (service != null) {
ContentUtilizer contentUtilizer = (ContentUtilizer) service;
List<Object> utilizers = contentUtilizer.getContentUtilizers(content.getId());
if (null == utilizers) {
continue;
}
Lang lang = this.getLangManager().getDefaultLang();
for (int j = 0; j < utilizers.size(); j++) {
Object object = utilizers.get(j);
if (service instanceof IContentManager && object instanceof String) {
// Content
// ID
Content refContent = this.getContentManager().loadContent(object.toString(), true);
if (!content.getMainGroup().equals(refContent.getMainGroup()) && !content.getGroups().contains(refContent.getMainGroup())) {
String[] args = { this.getGroupManager().getGroup(refContent.getMainGroup()).getDescription(), object.toString() + " '" + refContent.getDescription() + "'" };
action.addFieldError("mainGroup", action.getText("error.content.referencedContent.wrongGroups", args));
}
} else if (object instanceof IPage) {
// Content ID
IPage page = (IPage) object;
// page online, must be done the same check
if (!CmsPageUtil.isContentPublishableOnPageOnline(content, page)) {
PageMetadata metadata = page.getMetadata();
List<String> pageGroups = new ArrayList<String>();
pageGroups.add(page.getGroup());
if (metadata != null && null != metadata.getExtraGroups()) {
pageGroups.addAll(metadata.getExtraGroups());
}
String[] args = { pageGroups.toString(), page.getTitle(lang.getCode()) };
action.addFieldError("mainGroup", action.getText("error.content.referencedPage.wrongGroups", args));
}
}
}
}
}
} catch (Throwable t) {
throw new ApsSystemException("Error in hasReferencingObject method", t);
}
}
}
use of com.agiletec.plugins.jacms.aps.system.services.content.IContentManager in project entando-core by entando.
the class PageAction method validate.
@Override
public void validate() {
super.validate();
try {
if (this.getStrutsAction() != ApsAdminSystemConstants.EDIT) {
return;
}
IContentManager contentManager = (IContentManager) ApsWebApplicationUtils.getBean(JacmsSystemConstants.CONTENT_MANAGER, this.getRequest());
IPage page = this.createTempPage();
Collection<Content> contents = this.getPublishedContents(this.getPageCode());
for (Content content : contents) {
if (null != content && !CmsPageUtil.isContentPublishableOnPageDraft(content, page)) {
List<String> contentGroups = new ArrayList<String>();
contentGroups.add(content.getMainGroup());
if (null != content.getGroups()) {
contentGroups.addAll(content.getGroups());
}
this.addFieldError("extraGroups", this.getText("error.page.extraGoups.invalidGroupsForPublishedContent", new String[] { contentGroups.toString(), content.getId(), content.getDescription() }));
}
}
List<String> linkingContentsVo = ((PageUtilizer) contentManager).getPageUtilizers(this.getPageCode());
if (null != linkingContentsVo) {
for (int i = 0; i < linkingContentsVo.size(); i++) {
String contentId = linkingContentsVo.get(i);
Content linkingContent = contentManager.loadContent(contentId, true);
if (null != linkingContent && !CmsPageUtil.isPageLinkableByContentDraft(page, linkingContent)) {
this.addFieldError("extraGroups", this.getText("error.page.extraGoups.pageHasToBeFree", new String[] { linkingContent.getId(), linkingContent.getDescription() }));
}
}
}
} catch (Throwable t) {
_logger.error("Error on validate page", t);
throw new RuntimeException("Error on validate page", t);
}
}
Aggregations