use of com.helger.phoss.smp.backend.sql.SMPDBExecutor in project phoss-smp by phax.
the class V10__MigrateRolesToDB method migrate.
public void migrate(@Nonnull final Context context) throws Exception {
try (final WebScoped aWS = new WebScoped()) {
LOGGER.info("Migrating all roles to the DB");
final String sFilename = PhotonSecurityManager.FactoryXML.DIRECTORY_SECURITY + PhotonSecurityManager.FactoryXML.FILENAME_ROLES_XML;
final File aFile = WebFileIO.getDataIO().getFile(sFilename);
if (aFile.exists()) {
final RoleManager aMgrXML = new RoleManager(sFilename);
final ICommonsList<IRole> aRoles = aMgrXML.getAll();
if (aRoles.isNotEmpty()) {
final RoleManagerJDBC aMgrNew = new RoleManagerJDBC(SMPDBExecutor::new, SMPDBExecutor.TABLE_NAME_CUSTOMIZER);
for (final IRole aRole : aRoles) {
// Don't run the callback here
if (aMgrNew.internalCreateNewRole((Role) aRole, false, false) == null)
LOGGER.error("Failed to migrate role " + aRole + " to DB");
}
}
// Rename to avoid later inconsistencies
WebFileIO.getDataIO().renameFile(sFilename, sFilename + ".migrated");
LOGGER.info("Finished migrating all " + aRoles.size() + " roles to the DB");
} else {
LOGGER.warn("No role file found");
}
}
}
use of com.helger.phoss.smp.backend.sql.SMPDBExecutor in project phoss-smp by phax.
the class V11__MigrateUsersToDB method migrate.
public void migrate(@Nonnull final Context context) throws Exception {
try (final WebScoped aWS = new WebScoped()) {
LOGGER.info("Migrating all users to the DB");
final String sFilename = PhotonSecurityManager.FactoryXML.DIRECTORY_SECURITY + PhotonSecurityManager.FactoryXML.FILENAME_USERS_XML;
final File aFile = WebFileIO.getDataIO().getFile(sFilename);
if (aFile.exists()) {
// Read the XML file
final UserManager aMgrXML = new UserManager(sFilename);
final ICommonsList<IUser> aUsers = aMgrXML.getAll();
if (aUsers.isNotEmpty()) {
// Create a new JDBC manager
final UserManagerJDBC aMgrNew = new UserManagerJDBC(SMPDBExecutor::new, SMPDBExecutor.TABLE_NAME_CUSTOMIZER);
for (final IUser aUser : aUsers) {
// Don't run the callback here
if (aMgrNew.internalCreateNewUser((User) aUser, false, false) == null)
LOGGER.error("Failed to migrate user " + aUser + " to DB");
}
}
// Rename to avoid later inconsistencies
WebFileIO.getDataIO().renameFile(sFilename, sFilename + ".migrated");
LOGGER.info("Finished migrating all " + aUsers.size() + " users to the DB");
} else {
LOGGER.warn("No user file found");
}
}
}
use of com.helger.phoss.smp.backend.sql.SMPDBExecutor in project phoss-smp by phax.
the class V14__MigrateSettingsToDB method migrate.
public void migrate(@Nonnull final Context context) throws Exception {
try (final WebScoped aWS = new WebScoped()) {
LOGGER.info("Migrating all settings to the DB");
final String sFilename = "smp-settings.xml";
final File aFile = WebFileIO.getDataIO().getFile(sFilename);
if (aFile.exists()) {
final SMPSettingsManagerXML aMgrXML = new SMPSettingsManagerXML(sFilename);
final ISMPSettings aSettings = aMgrXML.getSettings();
final SMPSettingsManagerJDBC aMgrNew = new SMPSettingsManagerJDBC(SMPDBExecutor::new);
if (aMgrNew.updateSettings(aSettings.isRESTWritableAPIDisabled(), aSettings.isDirectoryIntegrationEnabled(), aSettings.isDirectoryIntegrationRequired(), aSettings.isDirectoryIntegrationAutoUpdate(), aSettings.getDirectoryHostName(), aSettings.isSMLEnabled(), aSettings.isSMLRequired(), aSettings.getSMLInfoID()).isUnchanged())
throw new IllegalStateException("Failed to migrate SMP settings to DB");
// Rename to avoid later inconsistencies
WebFileIO.getDataIO().renameFile(sFilename, sFilename + ".migrated");
LOGGER.info("Finished migrating all SMP settings to the DB");
} else {
LOGGER.info("No SMP settings file found");
}
}
}
Aggregations