Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Query users/groups for permissions

  • Add/remove users or groups to each permission settings

API

Permission Service

Code Block
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

Code Block
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

Code Block
/**
 * 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

Code Block
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: " +// Gets group user for plugin permission.
GroupUser groupUserForPermission = 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));

info(groupUserForPermission)

// Update permission with empty groups and users.
GroupUser groupUser = new GroupUser();
permissionService.updatePermission(PermissionType.BEYONDPLUGIN_PERIODPERMISSION, groupUser);
log.error("BEYOND_PERIOD: " +

groupUserForPermission = permissionService.getGroupUserByPermissionType(PermissionType.BEYONDPLUGIN_PERIOD));

PERMISSION);
// log.info(groupUserForPermission)

// update permission with not empty groups and users
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: " +
groupUserForPermission = permissionService.getGroupUserByPermissionType(PermissionType.BEYONDPLUGIN_PERIOD));PERMISSION);
// log.info(groupUserForPermission)