package utils;
import dbProcs.Getter;
import dbProcs.Setter;
import java.sql.SQLException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/**
* This class Determines how the registration functionality is available
*
* This file is part of the Security Shepherd Project.
*
*
The Security Shepherd project is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software Foundation, either
* version 3 of the License, or (at your option) any later version.
*
*
The Security Shepherd project is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
*
You should have received a copy of the GNU General Public License along with the Security
* Shepherd project. If not, see .
*
* @author Mark Denihan
*/
public class OpenRegistration {
private static final Logger log = LogManager.getLogger(OpenRegistration.class);
private static boolean enabled = false;
private static boolean isLoaded = false;
public static boolean isEnabled() {
if (!isLoaded) {
loadRegistrationStatus();
}
return enabled;
}
public static boolean isDisabled() {
if (!isLoaded) {
loadRegistrationStatus();
}
return !enabled;
}
public static void enable() {
if (!isLoaded) {
loadRegistrationStatus();
}
enabled = true;
saveRegistrationStatus();
}
public static void disable() {
if (!isLoaded) {
loadRegistrationStatus();
}
enabled = false;
saveRegistrationStatus();
}
public static void toggle() {
if (!isLoaded) {
loadRegistrationStatus();
}
enabled = !enabled;
saveRegistrationStatus();
}
private static void saveRegistrationStatus() {
try {
Setter.setRegistrationStatus("", enabled);
} catch (SQLException e) {
log.fatal("Could not save registration status in database: " + e.toString());
throw new RuntimeException(e);
}
}
private static void loadRegistrationStatus() {
try {
enabled = Getter.getRegistrationStatus("");
} catch (SQLException e) {
log.fatal("Could not load registration status from database: " + e.toString());
throw new RuntimeException(e);
}
isLoaded = true;
}
}