CCM NG: More work to get CCM NG running

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3765 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2015-12-08 16:51:01 +00:00
parent 3914360c48
commit c54956d642
4 changed files with 79 additions and 3 deletions

View File

@ -0,0 +1 @@
waf.config.packages=ccm-core

View File

@ -18,6 +18,7 @@
*/
package org.libreccm.core;
import com.arsdigita.runtime.ConfigRegistry;
import com.arsdigita.ui.admin.AdminApplicationCreator;
import com.arsdigita.ui.admin.AdminServlet;
import com.arsdigita.ui.login.LoginApplicationCreator;
@ -101,6 +102,10 @@ public class CcmCore implements CcmModule {
final SystemUsersSetup systemUsersSetup = new SystemUsersSetup(
entityManager);
systemUsersSetup.setupSystemUsers();
final ConfigRegistry configRegistry = new ConfigRegistry();
configRegistry.initialize("ccm-core");
}
@Override

View File

@ -18,9 +18,15 @@
*/
package org.libreccm.security;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.libreccm.core.CcmCore;
import org.libreccm.core.EmailAddress;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.persistence.EntityManager;
/**
@ -31,6 +37,11 @@ import javax.persistence.EntityManager;
*/
public class SystemUsersSetup {
private static final Logger LOGGER = LogManager.getLogger(
SystemUsersSetup.class);
private static final String DEFAULT_ADMIN_PW = "$shiro1$SHA-512$500000$MFPkVikNoRrBZ8R8CxQIHA==$UvgO2K+poSRGw5co63P3ygpWsX7H9N0TgqdrZPBqdXv6Q+/OCL/qOocVbg65/Yjv5hyri6A3zhw7K8mEgpISoA==";
private final EntityManager entityManager;
public SystemUsersSetup(final EntityManager entityManager) {
@ -38,13 +49,71 @@ public class SystemUsersSetup {
}
public void setupSystemUsers() {
LOGGER.info("Creating system users...");
createAdmin();
createPublicUser();
}
private void createAdmin() {
LOGGER.info("Creating admin user...");
final User admin = new User();
admin.setName("admin");
admin.setFamilyName("LibreCCM");
admin.setGivenName("System Administrator");
final EmailAddress adminEmail = new EmailAddress();
adminEmail.setAddress("admin@localhost");
admin.setPrimaryEmailAddress(adminEmail);
String adminPassword = DEFAULT_ADMIN_PW;
final InputStream inputStream = getClass().getResourceAsStream(
"/integration.properties");
if (inputStream == null) {
LOGGER.warn("No integration.properties file found. Using default "
+ "password (see documentation)");
} else {
final Properties properties = new Properties();
try {
properties.load(inputStream);
final String password = properties.getProperty("admin.password");
if((password != null) && !password.isEmpty()) {
adminPassword = password;
}
} catch (IOException ex) {
LOGGER.warn("Failed to load integration.properties. "
+ "Using default password.",
ex);
}
}
admin.setPassword(adminPassword);
final Role adminRole = new Role();
adminRole.setName("system-administrator");
final RoleMembership membership = new RoleMembership();
membership.setRole(adminRole);
membership.setMember(admin);
final Permission adminPermission = new Permission();
adminPermission.setGrantee(adminRole);
adminPermission.setGrantedPrivilege("*");
admin.addRoleMembership(membership);
adminRole.addMembership(membership);
entityManager.persist(admin);
entityManager.persist(adminRole);
entityManager.persist(membership);
entityManager.persist(adminPermission);
}
private void createPublicUser() {
final User user = new User();
user.setName("public-user");
user.setFamilyName("ccm");
user.setGivenName("public user");
user.setFamilyName("LibreCCM");
user.setGivenName("Public User");
final EmailAddress email = new EmailAddress();
email.setAddress("public-user@localhost");
user.addEmailAddress(email);
user.setPrimaryEmailAddress(email);
entityManager.persist(user);
}

View File

@ -0,0 +1 @@
waf.config.packages=ccm-core