Community Tip - Did you get an answer that solved your problem? Please mark it as an Accepted Solution so others with the same problem can find the answer easily. X
This groovy script creates an xml output of the audit log filtered by the User Access category, so dates of when users logged in or logged out.
Parameter:
days - number of days to search
import com.axeda.drm.sdk.device.ModelFinder
import com.axeda.drm.sdk.Context
import com.axeda.common.sdk.id.Identifier
import com.axeda.drm.sdk.device.Model
import com.axeda.drm.sdk.device.DeviceFinder
import com.axeda.drm.sdk.device.Device
import com.axeda.drm.sdk.audit.AuditCategoryList
import com.axeda.drm.sdk.audit.AuditCategory
import com.axeda.drm.sdk.audit.AuditEntryFinder
import com.axeda.drm.sdk.audit.SortType
import com.axeda.drm.sdk.audit.AuditEntry
import groovy.xml.MarkupBuilder
/*
* AuditEntryList.groovy
*
* Creates an xml output of the audit log filtered by the User Access category, so dates of when users logged in or logged out.
*
* @param days - (REQ):Str number of days to search.
*
* @author Sara Streeter <sstreeter@axeda.com>
*/
def writer = new StringWriter()
def xml = new MarkupBuilder(writer)
try {
def ctx = Context.getUserContext()
ModelFinder modelFinder = new ModelFinder(ctx, new Identifier(1))
Model model = modelFinder.find()
DeviceFinder deviceFinder = new DeviceFinder(ctx, new Identifier(1))
Device device = deviceFinder.find()
AuditCategoryList acl = new AuditCategoryList()
acl.add(AuditCategory.USER_ACCESS)
long now = System.currentTimeMillis()
Date today = new Date(now)
def paramdays = parameters.days ? parameters.days: 5
long days = 1000 * 60 * 60 * 24 * Integer.valueOf(paramdays)
AuditEntryFinder aef = new AuditEntryFinder(ctx)
aef.setCategories(acl)
aef.setToDate(today)
aef.setFromDate(new Date(now - (days)))
aef.setSortType(SortType.DATE)
aef.sortDescending()
List<AuditEntry> audits = aef.findAll()
// assemble the response
xml.Response() {
audits.each { AuditEntry audit ->
Audit() {
id(audit?.id.value)
user(audit?.user?.username)
date(audit?.date)
category(audit?.category?.bundleKey)
message(audit?.message)
}
}
}
} catch (def ex) {
xml.Response() {
Fault {
Code('Groovy Exception')
Message(ex.getMessage())
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
ex.printStackTrace(pw);
Detail(sw.toString())
}
}
}
return ['Content-Type': 'text/xml', 'Content': writer.toString()]