1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.itracker.core;
20
21 import org.apache.log4j.Logger;
22 import org.itracker.core.resources.ITrackerResources;
23 import org.itracker.model.User;
24 import org.itracker.persistence.dao.NoSuchEntityException;
25 import org.itracker.services.ConfigurationService;
26 import org.itracker.services.ReportService;
27 import org.itracker.services.UserService;
28 import org.itracker.services.exceptions.PasswordException;
29 import org.itracker.services.exceptions.UserException;
30 import org.itracker.services.util.SystemConfigurationUtilities;
31 import org.itracker.services.util.UserUtilities;
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 public class ApplicationInitialization {
50
51 private final Logger logger;
52 private UserService userService;
53 private ConfigurationService configurationService;
54
55 public ApplicationInitialization(UserService userService, ConfigurationService configurationService, ReportService reportService) {
56 this.userService = userService;
57 this.configurationService = configurationService;
58 this.logger = Logger.getLogger(getClass());
59 init();
60 }
61
62 public void init() {
63 try {
64 ITrackerResources.setDefaultLocale(configurationService.getProperty("default_locale", ITrackerResources.DEFAULT_LOCALE));
65 logger.info("Set system default locale to '" + ITrackerResources.getDefaultLocale() + "'");
66
67 logger.info("Checking and initializing languages in the database.");
68 SystemConfigurationUtilities.initializeAllLanguages(configurationService, false);
69
70 logger.info("Checking and initializing default system configuration in the database.");
71 configurationService.initializeConfiguration();
72
73
74
75
76 logger.info("Setting up cached configuration entries");
77 configurationService.resetConfigurationCache();
78
79
80
81
82
83
84
85
86
87 createAdminUser(configurationService);
88 } catch (PasswordException pe) {
89 logger.info("Unable to create admin user. Error: " + pe.getMessage());
90 } catch (UserException ue) {
91 logger.warn("Exception while creating admin user.", ue);
92 }
93 }
94
95
96
97
98
99
100
101
102 private void createAdminUser(ConfigurationService configurationService) throws PasswordException, UserException {
103 boolean createAdmin = configurationService.getBooleanProperty("create_super_user", false);
104 if (createAdmin) {
105 logger.info("Create default admin user option set to true. Checking for existing admin user.");
106 try {
107 userService.getUserByLogin("admin");
108 } catch (NoSuchEntityException e) {
109 logger.debug("Attempting to create admin user.");
110 User adminUser = new User("admin", UserUtilities.encryptPassword("admin"), "Super", "User",
111 "", true);
112 userService.createUser(adminUser);
113 }
114 }
115 }
116
117 }