Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Current »

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));
  • No labels