mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged 5.2.N-AUDIT-API (5.2.2) to 5.2.N (5.2.2)
137839 jvonka: V1 Audit API - Retrieve Audit Application info (REPO-1785) - initial code impl (tests to follow) REPO-437, REPO-2584 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@137957 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -417,6 +417,24 @@
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="auditApi" class="org.alfresco.rest.api.impl.AuditImpl">
|
||||
<property name="auditService" ref="AuditService" />
|
||||
</bean>
|
||||
|
||||
<bean id="AuditApi" class="org.springframework.aop.framework.ProxyFactoryBean">
|
||||
<property name="proxyInterfaces">
|
||||
<value>org.alfresco.rest.api.Audit</value>
|
||||
</property>
|
||||
<property name="target">
|
||||
<ref bean="auditApi" />
|
||||
</property>
|
||||
<property name="interceptorNames">
|
||||
<list>
|
||||
<idref bean="legacyExceptionInterceptor" />
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="comments" class="org.alfresco.rest.api.impl.CommentsImpl">
|
||||
<property name="nodes" ref="nodes" />
|
||||
<property name="nodeService" ref="NodeService" />
|
||||
@@ -794,13 +812,17 @@
|
||||
|
||||
<!-- API webscripts -->
|
||||
|
||||
<bean class="org.alfresco.rest.api.downloads.DownloadsEntityResource">
|
||||
<property name="downloads" ref="Downloads" />
|
||||
</bean>
|
||||
<bean class="org.alfresco.rest.api.audit.AuditApplicationsEntityResource">
|
||||
<property name="audit" ref="AuditApi" />
|
||||
</bean>
|
||||
|
||||
<bean class="org.alfresco.rest.api.sites.SiteEntityResource">
|
||||
<property name="sites" ref="Sites" />
|
||||
</bean>
|
||||
<bean class="org.alfresco.rest.api.downloads.DownloadsEntityResource">
|
||||
<property name="downloads" ref="Downloads" />
|
||||
</bean>
|
||||
|
||||
<bean class="org.alfresco.rest.api.sites.SiteEntityResource">
|
||||
<property name="sites" ref="Sites" />
|
||||
</bean>
|
||||
|
||||
<bean class="org.alfresco.rest.api.networks.NetworksEntityResource">
|
||||
<property name="networks" ref="Networks" />
|
||||
|
90
source/java/org/alfresco/rest/api/Audit.java
Normal file
90
source/java/org/alfresco/rest/api/Audit.java
Normal file
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Remote API
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2016 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.rest.api;
|
||||
|
||||
import org.alfresco.rest.api.model.AuditApp;
|
||||
import org.alfresco.rest.framework.resource.parameters.Parameters;
|
||||
|
||||
/**
|
||||
* Handles audit (applications & entries)
|
||||
*
|
||||
* @author janv
|
||||
*/
|
||||
public interface Audit
|
||||
{
|
||||
/**
|
||||
* Gets a single audit application by id
|
||||
*
|
||||
* @param auditAppId
|
||||
* @param parameters
|
||||
* @return an audit app
|
||||
*/
|
||||
AuditApp getAuditApp(String auditAppId, Parameters parameters);
|
||||
|
||||
/**
|
||||
* Lists audit applications
|
||||
*
|
||||
* @param parameters
|
||||
* @return Collection of audit apps
|
||||
*/
|
||||
//CollectionWithPagingInfo<AuditApp> listAuditApps(Parameters parameters);
|
||||
|
||||
/**
|
||||
* Updates a single audit application by id
|
||||
*
|
||||
* @param auditAppId
|
||||
* @param auditApp
|
||||
* @param parameters
|
||||
* @return an audit entry
|
||||
*/
|
||||
//AuditApp update(String auditAppId, AuditApp auditApp, Parameters parameters);
|
||||
|
||||
/**
|
||||
* Gets a single audit entry by id
|
||||
*
|
||||
* @param auditEntryId
|
||||
* @param parameters
|
||||
* @return an audit entry
|
||||
*/
|
||||
//AuditEntry getAuditEntry(long auditEntryId, Parameters parameters);
|
||||
|
||||
/**
|
||||
* Lists audit entries
|
||||
*
|
||||
* @param auditAppId if null then across all audit apps
|
||||
* @param parameters
|
||||
* @return Collection of audit entries
|
||||
*/
|
||||
//CollectionWithPagingInfo<AuditEntry> listAuditEntries(String auditAppId, Parameters parameters);
|
||||
|
||||
/**
|
||||
* Deletes a set of audit entries
|
||||
*
|
||||
* @param set of auditEntryIds
|
||||
* @return
|
||||
*/
|
||||
//void deleteAuditEntries(List<Long> auditEntryIds);
|
||||
}
|
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Remote API
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2016 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
|
||||
package org.alfresco.rest.api.audit;
|
||||
|
||||
|
||||
import org.alfresco.rest.api.Audit;
|
||||
import org.alfresco.rest.api.model.AuditApp;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
import org.alfresco.rest.framework.core.exceptions.EntityNotFoundException;
|
||||
import org.alfresco.rest.framework.resource.EntityResource;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction;
|
||||
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
|
||||
import org.alfresco.rest.framework.resource.parameters.Parameters;
|
||||
import org.alfresco.util.ParameterCheck;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
* An implementation of an Entity Resource for handling audit applications
|
||||
*
|
||||
* @author janv
|
||||
*/
|
||||
@EntityResource(name="audit-applications", title = "Audit Applications")
|
||||
public class AuditApplicationsEntityResource implements EntityResourceAction.ReadById<AuditApp>,
|
||||
EntityResourceAction.Read<AuditApp>, EntityResourceAction.Update<AuditApp>, InitializingBean
|
||||
{
|
||||
private Audit audit;
|
||||
|
||||
public void setAudit(Audit audit)
|
||||
{
|
||||
this.audit = audit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet()
|
||||
{
|
||||
ParameterCheck.mandatory("audit", this.audit);
|
||||
}
|
||||
|
||||
@Override
|
||||
@WebApiDescription(title="", description="")
|
||||
public AuditApp readById(String auditAppId, Parameters parameters) throws EntityNotFoundException
|
||||
{
|
||||
return audit.getAuditApp(auditAppId, parameters);
|
||||
}
|
||||
|
||||
@Override
|
||||
@WebApiDescription(title = "Update group", description = "Update group")
|
||||
public AuditApp update(String auditAppId, AuditApp auditApp, Parameters parameters)
|
||||
{
|
||||
//return audit.update(auditAppId, auditApp, parameters);
|
||||
return null; // TODO fixme
|
||||
}
|
||||
|
||||
@Override
|
||||
@WebApiDescription(title="", description="")
|
||||
public CollectionWithPagingInfo<AuditApp> readAll(Parameters params)
|
||||
{
|
||||
//return audit.listAuditApps(params);
|
||||
return null; // TODO fixme
|
||||
}
|
||||
}
|
30
source/java/org/alfresco/rest/api/audit/package-info.java
Normal file
30
source/java/org/alfresco/rest/api/audit/package-info.java
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Remote API
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2016 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
|
||||
@WebApi(name="alfresco", scope=Api.SCOPE.PUBLIC, version=1)
|
||||
package org.alfresco.rest.api.audit;
|
||||
import org.alfresco.rest.framework.Api;
|
||||
import org.alfresco.rest.framework.WebApi;
|
92
source/java/org/alfresco/rest/api/impl/AuditImpl.java
Normal file
92
source/java/org/alfresco/rest/api/impl/AuditImpl.java
Normal file
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Remote API
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2016 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.rest.api.impl;
|
||||
|
||||
import org.alfresco.rest.api.Audit;
|
||||
import org.alfresco.rest.api.model.AuditApp;
|
||||
import org.alfresco.rest.framework.core.exceptions.DisabledServiceException;
|
||||
import org.alfresco.rest.framework.core.exceptions.EntityNotFoundException;
|
||||
import org.alfresco.rest.framework.resource.parameters.Parameters;
|
||||
import org.alfresco.service.cmr.audit.AuditService;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Handles audit (applications & entries)
|
||||
*
|
||||
* @author janv
|
||||
*/
|
||||
public class AuditImpl implements Audit
|
||||
{
|
||||
private final static String DISABLED = "Audit is disabled system-wide";
|
||||
|
||||
private AuditService auditService;
|
||||
|
||||
public void setAuditService(AuditService auditService)
|
||||
{
|
||||
this.auditService = auditService;
|
||||
}
|
||||
|
||||
private void checkEnabled()
|
||||
{
|
||||
if (! auditService.isAuditEnabled())
|
||||
{
|
||||
throw new DisabledServiceException(DISABLED);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public AuditApp getAuditApp(String auditAppId, Parameters parameters)
|
||||
{
|
||||
checkEnabled();
|
||||
|
||||
AuditService.AuditApplication auditApplication = findAuditAppById(auditAppId);
|
||||
|
||||
if (auditApplication == null)
|
||||
{
|
||||
throw new EntityNotFoundException(auditAppId);
|
||||
}
|
||||
|
||||
return new AuditApp(auditApplication.getKey().substring(1), auditApplication.getName(), auditApplication.isEnabled());
|
||||
}
|
||||
|
||||
private AuditService.AuditApplication findAuditAppById(String auditAppId)
|
||||
{
|
||||
AuditService.AuditApplication auditApp = null;
|
||||
Map<String, AuditService.AuditApplication> auditApplicationsByName = auditService.getAuditApplications();
|
||||
if (auditApplicationsByName != null)
|
||||
{
|
||||
for (AuditService.AuditApplication auditApplication : auditApplicationsByName.values())
|
||||
{
|
||||
if (auditApplication.getKey().equals("/" + auditAppId))
|
||||
{
|
||||
auditApp = auditApplication;
|
||||
}
|
||||
}
|
||||
}
|
||||
return auditApp;
|
||||
}
|
||||
}
|
90
source/java/org/alfresco/rest/api/model/AuditApp.java
Normal file
90
source/java/org/alfresco/rest/api/model/AuditApp.java
Normal file
@@ -0,0 +1,90 @@
|
||||
/*
|
||||
* #%L
|
||||
* Alfresco Remote API
|
||||
* %%
|
||||
* Copyright (C) 2005 - 2016 Alfresco Software Limited
|
||||
* %%
|
||||
* This file is part of the Alfresco software.
|
||||
* If the software was purchased under a paid Alfresco license, the terms of
|
||||
* the paid license agreement will prevail. Otherwise, the software is
|
||||
* provided under the following open source license terms:
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
* #L%
|
||||
*/
|
||||
package org.alfresco.rest.api.model;
|
||||
|
||||
import org.codehaus.jackson.annotate.JsonProperty;
|
||||
|
||||
/**
|
||||
* A representation of a Audit App
|
||||
*
|
||||
* @author janv
|
||||
*
|
||||
*/
|
||||
public class AuditApp
|
||||
{
|
||||
private String id;
|
||||
private String name;
|
||||
private Boolean isEnabled;
|
||||
|
||||
public AuditApp()
|
||||
{
|
||||
}
|
||||
|
||||
public AuditApp(String id, String name, boolean isEnabled)
|
||||
{
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.isEnabled = isEnabled;
|
||||
}
|
||||
|
||||
public String getId()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name)
|
||||
{
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@JsonProperty(value="isEnabled")
|
||||
public Boolean getIsEnabled()
|
||||
{
|
||||
return isEnabled;
|
||||
}
|
||||
|
||||
@JsonProperty(value="isEnabled")
|
||||
public void setIsEnabled(Boolean isEnabled)
|
||||
{
|
||||
this.isEnabled = isEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return "AuditApp [id=" + id + ", name= " + name + ", isEnabled=" + isEnabled + "]";
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user