1 package com.atlassian.refapp.auth.internal;
2
3 import com.atlassian.user.EntityException;
4 import com.atlassian.user.Group;
5 import com.atlassian.user.GroupManager;
6 import com.atlassian.user.User;
7 import com.atlassian.user.UserManager;
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10
11 public class AuthenticationInitialization {
12 private final Log log = LogFactory.getLog(getClass());
13
14 public AuthenticationInitialization(UserManager userManager, GroupManager groupManager) {
15 try {
16 addUser(userManager, groupManager, "admin", "A. D. Ministrator (Sysadmin)", "admin@example.com", "admin", "users", "system_administrators");
17 addUser(userManager, groupManager, "fred", "Fred Sysadmin", "fred@example.org", "fred", "users", "system_administrators");
18 addUser(userManager, groupManager, "barney", "Barney User", "barney@example.org", "barney", "users");
19 addUser(userManager, groupManager, "betty", "Betty Admin", "betty@example.org", "betty", "users", "administrators");
20 } catch (EntityException e) {
21 log.error("Failed setting up default users", e);
22 }
23 }
24
25 private void addUser(UserManager userManager, GroupManager groupManager,
26 String username, String fullName, String email, String password, String... groupNames) throws EntityException {
27 User user = userManager.createUser(username);
28 user.setFullName(fullName);
29 user.setEmail(email);
30 userManager.saveUser(user);
31 userManager.alterPassword(user, password);
32 for (String groupName : groupNames) {
33 Group group = getOrCreateGroupIfAbsent(groupManager, groupName);
34 groupManager.addMembership(group, user);
35 }
36 }
37
38 private Group getOrCreateGroupIfAbsent(GroupManager groupManager, String groupName) throws EntityException {
39 Group group = groupManager.getGroup(groupName);
40 if (group == null) {
41 group = groupManager.createGroup(groupName);
42 }
43 return group;
44 }
45 }