PageRenderTime 26ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/src/main/java/com/atlassian/jconnect/jira/UserHelper.java

https://bitbucket.org/atlassian/jiraconnect-jiraplugin/
Java | 82 lines | 59 code | 15 blank | 8 comment | 2 complexity | 83b2620c330bd8bf03fe1bce45d40974 MD5 | raw file
  1. package com.atlassian.jconnect.jira;
  2. import com.atlassian.crowd.embedded.api.User;
  3. import com.atlassian.jira.bc.user.UserService;
  4. import com.atlassian.jira.user.util.UserManager;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import java.util.UUID;
  8. import static com.google.common.base.Preconditions.checkNotNull;
  9. /**
  10. * Performs some common user operations.
  11. */
  12. public class UserHelper
  13. {
  14. private static final Logger log = LoggerFactory.getLogger(UserHelper.class);
  15. private static final String SYSTEM_USERNAME = "jiraconnectuser";
  16. private final UserService userService;
  17. private final UserManager userManager;
  18. public UserHelper(UserService userService, UserManager userManager)
  19. {
  20. this.userService = userService;
  21. this.userManager = userManager;
  22. }
  23. public User getJMCSystemUser()
  24. {
  25. final String username = SYSTEM_USERNAME;
  26. log.debug("Retrieving user " + username);
  27. return userManager.getUserObject(username);
  28. }
  29. public User getUser(String username)
  30. {
  31. return userManager.getUserObject(username);
  32. }
  33. public User getOrCreateJMCSystemUser()
  34. {
  35. // try to resolve user
  36. User user = getJMCSystemUser();
  37. // create user if they don't already exist
  38. if (user == null)
  39. {
  40. // todo these could be reconsidered..
  41. // make up some stub values for the required fields
  42. final String udid = SYSTEM_USERNAME;
  43. final String password = UUID.randomUUID().toString(); // TODO: possible to create a user w/o login permission ?
  44. final String email = udid + "@connect.jira.com";
  45. final String fullName = udid;
  46. // add user (as if signing up)
  47. final UserService.CreateUserValidationResult validationResult = userService
  48. .validateCreateUserForSignupOrSetup(null, asUsername(udid), password, password, email, fullName);
  49. try
  50. {
  51. user = userService.createUserNoNotification(validationResult);
  52. log.debug("Created user: " + udid);
  53. }
  54. catch (Exception e)
  55. {
  56. log.error("Failed to create user", e);
  57. return null;
  58. }
  59. checkNotNull(user, "user");
  60. }
  61. return user;
  62. }
  63. private String asUsername(final String udid)
  64. {
  65. return udid.toLowerCase();
  66. }
  67. }