need groovy script to restrict users from logging the hours on past days, please help
Hi Chirannjevi,
If you have ScriptRunner for JIRA installed you could use a Script Listener to remove work logs added which log time on previous days. It is not possible to prevent them from being logged in the first place though.
A sample script to do this, for use with the Worklog Created event, is:
import java.time.ZonedDateTime
import java.time.format.DateTimeFormatter
import java.time.ZoneOffset
import java.time.ZoneId
def loggedDateTime = worklog.started
def formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
ZonedDateTime loggedZoned = ZonedDateTime.parse(loggedDateTime, formatter);
ZonedDateTime nowZoned = ZonedDateTime.now(loggedZoned.getZone())
def startOfTodayZoned = nowZoned.withHour(0).withMinute(0).withSecond(0).withNano(0)
logger.info("Work logged at ${nowZoned.toString()} for ${loggedZoned.toString()}")
if (loggedZoned.isBefore(startOfTodayZoned)) {
logger.info("Time was logged before start of today, deleting worklog")
def deleteResp = delete("/rest/api/2/issue/${worklog.issueId}/worklog/${worklog.id}")
.asObject(Map)
assert deleteResp.status == 204
def notifyResp = post("/rest/api/2/issue/${worklog.issueId}/notify")
.header("Content-Type", "application/json")
.body([
subject: "Worklogs cannot be made on past days",
textBody: "Worklogs cannot be made on past days, your worklog has been deleted",
htmlBody: "<p>Worklogs cannot be made on past days, your worklog has been deleted</p>",
to: [
reporter: false,
assignee: false,
voters: false,
watchers: false,
users: [
[name: worklog.author.name]
]
]
])
.asString()
} else {
logger.info("Time was logged after start of today")
}Thanks,
Jon
Thank you jon,
should we have script runner add-on installed in JIRA to use this script? please suggest me
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes, you'll need ScriptRunner for JIRA in order to use this script.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.