Timetracker version 4.7.5 or higher is required to access this API
JIRA Administrators or JIRA System Administrators permission required for the user this service
Timetracker permissions can be managed via this Service:
Query users/groups for permissions
Add/remove users or groups to each permission settings
API
Permission Service
package org.everit.jira.reporting.service.permission; /** * Public Permission Service. */ public interface PermissionService { /** * Get groups and users for the given permission type. Requires System Administrator or Administrator jira permission. * * @param permissionType * the tpye of permission. * @return the {@link GroupUser} object. */ GroupUser getGroupUserByPermissionType(PermissionType permissionType); /** * Update groups and users for the given permission. Requires System Administrator or Administrator jira permission. * This method clears the users and groups previously specified for the permission. * * @param permissionType * the type of permission. * @param groupUser * the {@link GroupUser} object. */ void updatePermission(PermissionType permissionType, GroupUser groupUser); }
Permission type
package org.everit.jira.reporting.service.permission; /** * Type of permissions. */ public enum PermissionType { /** * Permission to create/edit worklogs beyond the period */ BEYOND_PERIOD, /** * Permission to browse others worklogs */ BROWSE_GROUPS, /** * Permission to send notification emails about missing days */ EMAIL_GROUPS, /** * Permission to use the Plugin */ PLUGIN_PERMISSION, /** * Project Controllers */ PROJECT_CONTROLLER, /** * Permission to use Reporting */ REPORTING_PERMISSION, /** * Permission to use Timetracker */ TIMETRACKER_PERMISSION, /** * Wage managers */ WAGE_MANAGER; }
Group user data
/** * Group user data container. */ public class GroupUser { private List<String> groups = Collections.emptyList(); private List<String> users = Collections.emptyList(); public List<String> getGroups() { return groups; } public List<String> getUsers() { return users; } public GroupUser setGroups(final List<String> groups) { this.groups = groups; return this; } public GroupUser setUsers(final List<String> users) { this.users = users; return this; } @Override public String toString() { return "GroupUser [" + (groups != null ? "groups=" + groups + ", " : "") + (users != null ? "users=" + users : "") + "]"; } }
Example
import com.onresolve.scriptrunner.runner.customisers.PluginModule; import com.onresolve.scriptrunner.runner.customisers.WithPlugin; import org.everit.jira.reporting.service.permission.PermissionService; import org.everit.jira.reporting.service.permission.PermissionType; import org.everit.jira.reporting.service.permission.GroupUser; import java.util.Arrays; @WithPlugin("org.everit.jira.timetracker.plugin") @PluginModule PermissionService permissionService; log.error("BEYOND_PERIOD: " + permissionService.getGroupUserByPermissionType(PermissionType.BEYOND_PERIOD)); log.error("BROWSE_GROUPS: " + permissionService.getGroupUserByPermissionType(PermissionType.BROWSE_GROUPS)); log.error("EMAIL_GROUPS: " + permissionService.getGroupUserByPermissionType(PermissionType.EMAIL_GROUPS)); log.error("PLUGIN_PERMISSION: " + permissionService.getGroupUserByPermissionType(PermissionType.PLUGIN_PERMISSION)); log.error("REPORTING_PERMISSION: " + permissionService.getGroupUserByPermissionType(PermissionType.REPORTING_PERMISSION)); log.error("TIMETRACKER_PERMISSION: " + permissionService.getGroupUserByPermissionType(PermissionType.TIMETRACKER_PERMISSION)); log.error("WAGE_MANAGER: " + permissionService.getGroupUserByPermissionType(PermissionType.WAGE_MANAGER)); log.error("PROJECT_CONTROLLER: " + permissionService.getGroupUserByPermissionType(PermissionType.PROJECT_CONTROLLER)); GroupUser groupUser = new GroupUser(); permissionService.updatePermission(PermissionType.BEYOND_PERIOD, groupUser); log.error("BEYOND_PERIOD: " + permissionService.getGroupUserByPermissionType(PermissionType.BEYOND_PERIOD)); groupUser = new GroupUser() .setGroups(Arrays.asList("jira-administrators")) .setUsers(Arrays.asList("douglas.arnold@everit.biz")); permissionService.updatePermission(PermissionType.BEYOND_PERIOD, groupUser); log.error("BEYOND_PERIOD: " + permissionService.getGroupUserByPermissionType(PermissionType.BEYOND_PERIOD));