Files
CyberPanel/static/firewall/firewall.js
usmannasir 5c014765db Bug fixes
2018-08-21 13:10:40 +05:00

2117 lines
61 KiB
JavaScript

/**
* Created by usman on 9/5/17.
*/
/* Java script code to ADD Firewall Rules */
app.controller('firewallController', function($scope,$http) {
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.rulesDetails = false;
firewallStatus();
populateCurrentRecords();
$scope.addRule = function(){
$scope.rulesLoading = false;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
url = "/firewall/addRule";
var ruleName = $scope.ruleName;
var ruleProtocol = $scope.ruleProtocol;
var rulePort = $scope.rulePort;
var data = {
ruleName:ruleName,
ruleProtocol:ruleProtocol,
rulePort:rulePort,
ruleIP:$scope.ruleIP,
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.add_status == 1){
populateCurrentRecords();
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = false;
$scope.couldNotConnect = true;
}
else{
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = false;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = false;
}
};
function populateCurrentRecords(){
$scope.rulesLoading = false;
$scope.actionFailed = true;
$scope.actionSuccess = true;
url = "/firewall/getCurrentRules";
var data = {
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.fetchStatus == 1){
$scope.rules = JSON.parse(response.data.data);
$scope.rulesLoading = true;
}
else{
$scope.rulesLoading = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotConnect = false;
}
};
$scope.deleteRule = function(id,proto,port,ruleIP){
$scope.rulesLoading = false;
url = "/firewall/deleteRule";
var data = {
id:id,
proto:proto,
port:port,
ruleIP:ruleIP,
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.delete_status == 1){
populateCurrentRecords();
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
}
else{
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = false;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.rulesLoading = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = false;
}
};
$scope.reloadFireWall = function(){
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.rulesLoading = false;
url = "/firewall/reloadFirewall";
var data = {
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.reload_status == 1){
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = false;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
}
else{
$scope.rulesLoading = true;
$scope.actionFailed = false;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = false;
}
};
$scope.startFirewall = function(){
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.rulesLoading = false;
url = "/firewall/startFirewall";
var data = {
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.start_status == 1){
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = false;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.rulesDetails = false;
firewallStatus();
}
else{
$scope.rulesLoading = true;
$scope.actionFailed = false;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = false;
}
};
$scope.stopFirewall = function(){
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.rulesLoading = false;
url = "/firewall/stopFirewall";
var data = {
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.stop_status == 1){
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = false;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.rulesDetails = true;
firewallStatus();
}
else{
$scope.rulesLoading = true;
$scope.actionFailed = false;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.rulesLoading = true;
$scope.actionFailed = true;
$scope.actionSuccess = true;
$scope.canNotAddRule = true;
$scope.ruleAdded = true;
$scope.couldNotConnect = false;
}
};
function firewallStatus(){
url = "/firewall/firewallStatus";
var data = {
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.status == 1){
if(response.data.firewallStatus == 1){
$scope.rulesDetails = false;
$scope.status = "ON";
}
else{
$scope.rulesDetails = true;
$scope.status = "OFF";
}
}
else{
$scope.rulesDetails = true;
$scope.status = "OFF";
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotConnect = false;
}
};
});
/* Java script code to ADD Firewall Rules */
/* Java script code to Secure SSH */
app.controller('secureSSHCTRL', function($scope,$http) {
$scope.couldNotSave = true;
$scope.detailsSaved = true;
$scope.couldNotConnect = true;
$scope.secureSSHLoading = true;
$scope.keyDeleted = true;
$scope.keyBox = true;
$scope.showKeyBox = false;
$scope.saveKeyBtn = true;
$scope.addKey = function(){
$scope.saveKeyBtn = false;
$scope.showKeyBox = true;
$scope.keyBox = false;
};
getSSHConfigs();
populateCurrentKeys();
// Checking root login
var rootLogin = false;
$('#rootLogin').change(function() {
rootLogin = $(this).prop('checked');
});
function getSSHConfigs(){
$scope.couldNotSave = true;
$scope.detailsSaved = true;
$scope.couldNotConnect = true;
$scope.secureSSHLoading = false;
url = "/firewall/getSSHConfigs";
var data = {
type:"1",
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.sshPort = response.data.sshPort;
if(response.data.permitRootLogin == 1){
$('#rootLogin').bootstrapToggle('on');
$scope.couldNotSave = true;
$scope.detailsSaved = true;
$scope.couldNotConnect = true;
$scope.secureSSHLoading = true;
}
else{
$scope.errorMessage = response.data.error_message;
$scope.couldNotSave = true;
$scope.detailsSaved = true;
$scope.couldNotConnect = true;
$scope.secureSSHLoading = true;
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotConnect = false;
}
};
$scope.saveChanges = function () {
$scope.couldNotSave = true;
$scope.detailsSaved = true;
$scope.couldNotConnect = true;
$scope.secureSSHLoading = false;
url = "/firewall/saveSSHConfigs";
var data = {
type:"1",
sshPort:$scope.sshPort,
rootLogin:rootLogin,
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.saveStatus == 1){
$scope.couldNotSave = true;
$scope.detailsSaved = false;
$scope.couldNotConnect = true;
$scope.secureSSHLoading = true;
}
else{
$scope.couldNotSave = false;
$scope.detailsSaved = true;
$scope.couldNotConnect = true;
$scope.secureSSHLoading = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotSave = true;
$scope.detailsSaved = true;
$scope.couldNotConnect = false;
$scope.secureSSHLoading = true;
}
};
function populateCurrentKeys(){
url = "/firewall/getSSHConfigs";
var data = {
type:"2",
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.status == 1){
$scope.records = JSON.parse(response.data.data);
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotConnect = false;
}
}
$scope.deleteKey = function(key){
$scope.secureSSHLoading = false;
url = "/firewall/deleteSSHKey";
var data = {
key:key,
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.delete_status === 1){
$scope.secureSSHLoading = true;
$scope.keyDeleted = false;
populateCurrentKeys();
}
else{
$scope.couldNotConnect = false;
$scope.secureSSHLoading = true;
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotConnect = false;
$scope.secureSSHLoading = true;
}
}
$scope.saveKey = function(key){
$scope.secureSSHLoading = false;
url = "/firewall/addSSHKey";
var data = {
key:$scope.keyData,
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.add_status === 1){
$scope.secureSSHLoading = true;
$scope.saveKeyBtn = true;
$scope.showKeyBox = false;
$scope.keyBox = true;
populateCurrentKeys();
}
else{
$scope.secureSSHLoading = true;
$scope.saveKeyBtn = false;
$scope.showKeyBox = true;
$scope.keyBox = true;
$scope.couldNotConnect = false;
$scope.secureSSHLoading = true;
}
}
function cantLoadInitialDatas(response) {
$scope.secureSSHLoading = true;
$scope.saveKeyBtn = false;
$scope.showKeyBox = true;
$scope.keyBox = true;
$scope.couldNotConnect = false;
$scope.secureSSHLoading = true;
}
}
});
/* Java script code to Secure SSH */
/* Java script code for ModSec */
app.controller('modSec', function($scope, $http, $timeout, $window) {
$scope.modSecNotifyBox = true;
$scope.modeSecInstallBox = true;
$scope.modsecLoading = true;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
$scope.installModSec = function(){
$scope.modSecNotifyBox = true;
$scope.modeSecInstallBox = true;
$scope.modsecLoading = false;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
url = "/firewall/installModSec";
var data = {};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.installModSec === 1){
$scope.modSecNotifyBox = true;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = false;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
getRequestStatus();
}
else{
$scope.errorMessage = response.data.error_message;
$scope.modSecNotifyBox = false;
$scope.modeSecInstallBox = true;
$scope.modsecLoading = true;
$scope.failedToStartInallation = false;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
}
}
function cantLoadInitialDatas(response) {
$scope.modSecNotifyBox = false;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = true;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = false;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
}
};
function getRequestStatus(){
$scope.modSecNotifyBox = true;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = false;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
url = "/firewall/installStatusModSec";
var data = {};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.abort === 0){
$scope.modSecNotifyBox = true;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = false;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
$scope.requestData = response.data.requestStatus;
$timeout(getRequestStatus,1000);
}
else{
// Notifications
$timeout.cancel();
$scope.modSecNotifyBox = false;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = true;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.requestData = response.data.requestStatus;
if(response.data.installed === 0) {
$scope.installationFailed = false;
$scope.errorMessage = response.data.error_message;
}else{
$scope.modSecSuccessfullyInstalled = false;
$timeout(function() { $window.location.reload(); }, 3000);
}
}
}
function cantLoadInitialDatas(response) {
$scope.modSecNotifyBox = false;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = true;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = false;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
}
}
///// ModSec configs
var modsecurity_status = false;
var SecAuditEngine = false;
var SecRuleEngine = false;
$('#modsecurity_status').change(function() {
modsecurity_status = $(this).prop('checked');
});
$('#SecAuditEngine').change(function() {
SecAuditEngine = $(this).prop('checked');
});
$('#SecRuleEngine').change(function() {
SecRuleEngine = $(this).prop('checked');
});
fetchModSecSettings();
function fetchModSecSettings(){
$scope.modsecLoading = false;
$('#modsecurity_status').bootstrapToggle('off');
$('#SecAuditEngine').bootstrapToggle('off');
$('#SecRuleEngine').bootstrapToggle('off');
url = "/firewall/fetchModSecSettings";
var phpSelection = $scope.phpSelection;
var data = {};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.modsecLoading = true;
if(response.data.fetchStatus === 1){
if(response.data.installed === 1) {
if (response.data.modsecurity === 1) {
$('#modsecurity_status').bootstrapToggle('on');
}
if (response.data.SecAuditEngine === 1) {
$('#SecAuditEngine').bootstrapToggle('on');
}
if (response.data.SecRuleEngine === 1) {
$('#SecRuleEngine').bootstrapToggle('on');
}
$scope.SecDebugLogLevel = response.data.SecDebugLogLevel;
$scope.SecAuditLogParts = response.data.SecAuditLogParts;
$scope.SecAuditLogRelevantStatus = response.data.SecAuditLogRelevantStatus;
$scope.SecAuditLogType = response.data.SecAuditLogType;
}
}
}
function cantLoadInitialDatas(response) {
$scope.modsecLoading = true;
}
}
/////
/// Save ModSec Changes
$scope.failedToSave = true;
$scope.successfullySaved = true;
$scope.saveModSecConfigurations = function () {
$scope.failedToSave = true;
$scope.successfullySaved = true;
$scope.modsecLoading = false;
$scope.couldNotConnect = true;
url = "/firewall/saveModSecConfigurations";
var data = {
modsecurity_status:modsecurity_status,
SecAuditEngine:SecAuditEngine,
SecRuleEngine:SecRuleEngine,
SecDebugLogLevel:$scope.SecDebugLogLevel,
SecAuditLogParts:$scope.SecAuditLogParts,
SecAuditLogRelevantStatus:$scope.SecAuditLogRelevantStatus,
SecAuditLogType:$scope.SecAuditLogType,
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.saveStatus === 1){
$scope.failedToSave = true;
$scope.successfullySaved = false;
$scope.modsecLoading = true;
$scope.couldNotConnect = true;
}
else{
$scope.errorMessage = response.data.error_message;
$scope.failedToSave = false;
$scope.successfullySaved = true;
$scope.modsecLoading = true;
$scope.couldNotConnect = true;
}
}
function cantLoadInitialDatas(response) {
$scope.failedToSave = true;
$scope.successfullySaved = false;
$scope.modsecLoading = true;
$scope.couldNotConnect = true;
}
};
});
app.controller('modSecRules', function($scope, $http) {
$scope.modsecLoading = true;
$scope.rulesSaved = true;
$scope.couldNotConnect = true;
$scope.couldNotSave = true;
fetchModSecRules();
function fetchModSecRules(){
$scope.modsecLoading = false;
$scope.modsecLoading = true;
$scope.rulesSaved = true;
$scope.couldNotConnect = true;
url = "/firewall/fetchModSecRules";
var data = {};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.modsecLoading = true;
if(response.data.modSecInstalled === 1){
$scope.currentModSecRules = response.data.currentModSecRules;
}
}
function cantLoadInitialDatas(response) {
$scope.modsecLoading = true;
}
}
$scope.saveModSecRules = function(){
$scope.modsecLoading = false;
$scope.rulesSaved = true;
$scope.couldNotConnect = true;
$scope.couldNotSave = true;
url = "/firewall/saveModSecRules";
var data = {
modSecRules:$scope.currentModSecRules
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.modsecLoading = true;
if(response.data.saveStatus === 1){
$scope.rulesSaved = false;
$scope.couldNotConnect = true;
$scope.couldNotSave = true;
}else{
$scope.rulesSaved = true;
$scope.couldNotConnect = true;
$scope.couldNotSave = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.modsecLoading = true;
$scope.rulesSaved = true;
$scope.couldNotConnect = false;
$scope.couldNotSave = true;
}
}
});
/* Java script code for ModSec */
app.controller('modSecRulesPack', function($scope, $http, $timeout, $window) {
$scope.modsecLoading = true;
$scope.owaspDisable = true;
$scope.comodoDisable = true;
//
$scope.installationQuote = true;
$scope.couldNotConnect = true;
$scope.installationFailed = true;
$scope.installationSuccess = true;
$scope.ruleFiles = true;
/////
var owaspInstalled = false;
var comodoInstalled = false;
var counterOWASP = 0;
var counterComodo = 0;
$('#owaspInstalled').change(function() {
owaspInstalled = $(this).prop('checked');
$scope.ruleFiles = true;
if(counterOWASP !== 0) {
if (owaspInstalled === true) {
installModSecRulesPack('installOWASP');
} else {
installModSecRulesPack('disableOWASP')
}
}
counterOWASP = counterOWASP + 1;
});
$('#comodoInstalled').change(function() {
$scope.ruleFiles = true;
comodoInstalled = $(this).prop('checked');
if(counterComodo !== 0) {
if (comodoInstalled === true) {
installModSecRulesPack('installComodo');
} else {
installModSecRulesPack('disableComodo')
}
}
counterComodo = counterComodo + 1;
});
getOWASPAndComodoStatus(true);
function getOWASPAndComodoStatus(updateToggle){
$scope.modsecLoading = false;
url = "/firewall/getOWASPAndComodoStatus";
var data = {};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.modsecLoading = true;
if(response.data.modSecInstalled === 1){
if (updateToggle === true){
if (response.data.owaspInstalled === 1) {
$('#owaspInstalled').bootstrapToggle('on');
$scope.owaspDisable = false;
} else {
$('#owaspInstalled').bootstrapToggle('off');
$scope.owaspDisable = true;
}
if (response.data.comodoInstalled === 1) {
$('#comodoInstalled').bootstrapToggle('on');
$scope.comodoDisable = false;
} else {
$('#comodoInstalled').bootstrapToggle('off');
$scope.comodoDisable = true;
}
}else{
if (response.data.owaspInstalled === 1) {
$scope.owaspDisable = false;
} else {
$scope.owaspDisable = true;
}
if (response.data.comodoInstalled === 1) {
$scope.comodoDisable = false;
} else {
$scope.comodoDisable = true;
}
}
}
}
function cantLoadInitialDatas(response) {
$scope.modsecLoading = true;
}
}
/////
function installModSecRulesPack(packName) {
$scope.modsecLoading = false;
url = "/firewall/installModSecRulesPack";
var data = {
packName:packName
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.modsecLoading = true;
if(response.data.installStatus === 1){
$scope.modsecLoading = true;
//
$scope.installationQuote = true;
$scope.couldNotConnect = true;
$scope.installationFailed = true;
$scope.installationSuccess = false;
getOWASPAndComodoStatus(false);
}else{
$scope.modsecLoading = true;
//
$scope.installationQuote = true;
$scope.couldNotConnect = true;
$scope.installationFailed = false;
$scope.installationSuccess = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.modsecLoading = true;
//
$scope.installationQuote = true;
$scope.couldNotConnect = false;
$scope.installationFailed = true;
$scope.installationSuccess = true;
}
}
/////
$scope.fetchRulesFile = function (packName) {
$scope.modsecLoading = false;
$scope.ruleFiles = false;
$scope.installationQuote = true;
$scope.couldNotConnect = true;
$scope.installationFailed = true;
$scope.installationSuccess = true;
url = "/firewall/getRulesFiles";
var data = {
packName:packName
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.modsecLoading = true;
if(response.data.fetchStatus === 1){
$scope.records = JSON.parse(response.data.data);
$scope.installationQuote = true;
$scope.couldNotConnect = true;
$scope.installationFailed = true;
$scope.installationSuccess = false;
}
else{
$scope.installationQuote = true;
$scope.couldNotConnect = true;
$scope.installationFailed = false;
$scope.installationSuccess = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.modsecLoading = true;
$scope.installationQuote = true;
$scope.couldNotConnect = false;
$scope.installationFailed = true;
$scope.installationSuccess = true;
}
};
$scope.removeRuleFile = function (fileName, packName, status) {
$scope.modsecLoading = false;
url = "/firewall/enableDisableRuleFile";
var data = {
packName:packName,
fileName:fileName,
status:status
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.modsecLoading = true;
if(response.data.saveStatus === 1){
$scope.modsecLoading = true;
//
$scope.installationQuote = true;
$scope.couldNotConnect = true;
$scope.installationFailed = true;
$scope.installationSuccess = false;
$scope.fetchRulesFile(packName);
}else{
$scope.modsecLoading = true;
//
$scope.installationQuote = true;
$scope.couldNotConnect = true;
$scope.installationFailed = false;
$scope.installationSuccess = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.modsecLoading = true;
//
$scope.installationQuote = true;
$scope.couldNotConnect = false;
$scope.installationFailed = true;
$scope.installationSuccess = true;
}
}
});
/* Java script code for ModSec */
/* Java script code for CSF */
app.controller('csf', function($scope, $http, $timeout, $window) {
$scope.csfLoading = true;
$scope.modeSecInstallBox = true;
$scope.modsecLoading = true;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
$scope.installCSF = function(){
$scope.modSecNotifyBox = true;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = false;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
url = "/firewall/installCSF";
var data = {};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.installStatus === 1){
$scope.modSecNotifyBox = true;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = false;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
getRequestStatus();
}
else{
$scope.errorMessage = response.data.error_message;
$scope.modSecNotifyBox = false;
$scope.modeSecInstallBox = true;
$scope.modsecLoading = true;
$scope.failedToStartInallation = false;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
}
}
function cantLoadInitialDatas(response) {
$scope.modSecNotifyBox = false;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = true;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = false;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
}
};
function getRequestStatus(){
$scope.modSecNotifyBox = true;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = false;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
url = "/firewall/installStatusCSF";
var data = {};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if(response.data.abort === 0){
$scope.modSecNotifyBox = true;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = false;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
$scope.requestData = response.data.requestStatus;
$timeout(getRequestStatus,1000);
}
else{
// Notifications
$timeout.cancel();
$scope.modSecNotifyBox = false;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = true;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = true;
$scope.requestData = response.data.requestStatus;
if(response.data.installed === 0) {
$scope.installationFailed = false;
$scope.errorMessage = response.data.error_message;
}else{
$scope.modSecSuccessfullyInstalled = false;
$timeout(function() { $window.location.reload(); }, 3000);
}
}
}
function cantLoadInitialDatas(response) {
$scope.modSecNotifyBox = false;
$scope.modeSecInstallBox = false;
$scope.modsecLoading = true;
$scope.failedToStartInallation = true;
$scope.couldNotConnect = false;
$scope.modSecSuccessfullyInstalled = true;
$scope.installationFailed = true;
}
}
// After installation
var currentMain = "generalLI";
var currentChild = "general";
$scope.activateTab = function (newMain, newChild) {
$("#"+currentMain).removeClass("ui-tabs-active");
$("#"+currentMain).removeClass("ui-state-active");
$("#"+newMain).addClass("ui-tabs-active");
$("#"+newMain).addClass("ui-state-active");
$('#'+currentChild).hide();
$('#'+newChild).show();
currentMain = newMain;
currentChild = newChild;
};
$scope.removeCSF = function(){
$scope.csfLoading = false;
url = "/firewall/removeCSF";
var data = {};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.csfLoading = true;
if(response.data.installStatus === 1){
new PNotify({
title: 'Successfully removed!',
text: 'CSF successfully removed from server, refreshing page in 3 seconds..',
type:'success'
});
$timeout(function() { $window.location.reload(); }, 3000);
}
else{
new PNotify({
title: 'Operation failed!',
text: response.data.error_message,
type:'error'
});
}
}
function cantLoadInitialDatas(response) {
new PNotify({
title: 'Operation failed!',
text: 'Could not connect to server, please refresh this page.',
type:'error'
});
}
};
//////// Fetch settings
//
var testingMode = false;
var testingCounter = 0;
$('#testingMode').change(function() {
testingMode = $(this).prop('checked');
if(testingCounter !== 0) {
if (testingMode === true) {
$scope.changeStatus('testingMode', 'enable');
} else {
$scope.changeStatus('testingMode', 'disable');
}
}
testingCounter = testingCounter + 1;
});
//
//
var firewallStatus = false;
var firewallCounter = 0;
$('#firewallStatus').change(function() {
firewallStatus = $(this).prop('checked');
if(firewallCounter !== 0) {
if (firewallStatus === true) {
$scope.changeStatus('csf', 'enable');
} else {
$scope.changeStatus('csf', 'disable');
}
}
firewallCounter = firewallCounter + 1;
});
//
$scope.fetchSettings = function(){
$scope.csfLoading = false;
$('#testingMode').bootstrapToggle('off');
$('#firewallStatus').bootstrapToggle('off');
url = "/firewall/fetchCSFSettings";
var data = {};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.csfLoading = true;
if(response.data.fetchStatus === 1){
new PNotify({
title: 'Successfully fetched!',
text: 'CSF settings successfully fetched.',
type:'success'
});
if (response.data.testingMode === 1) {
$('#testingMode').bootstrapToggle('on');
}
if (response.data.firewallStatus === 1) {
$('#firewallStatus').bootstrapToggle('on');
}
$scope.tcpIN = response.data.tcpIN;
$scope.tcpOUT = response.data.tcpOUT;
$scope.udpIN = response.data.udpIN;
$scope.udpOUT = response.data.udpOUT;
}else{
new PNotify({
title: 'Failed to load!',
text: response.data.error_message,
type:'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.csfLoading = true;
new PNotify({
title: 'Failed to load!',
text: 'Failed to fetch CSF settings.',
type:'error'
});
}
};
$scope.fetchSettings();
$scope.changeStatus = function(controller, status){
$scope.csfLoading = false;
url = "/firewall/changeStatus";
var data = {
controller: controller,
status : status
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.csfLoading = true;
if(response.data.status === 1){
new PNotify({
title: 'Success!',
text: 'Changes successfully applied.',
type:'success'
});
}else{
new PNotify({
title: 'Error!',
text: response.data.error_message,
type:'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.csfLoading = true;
new PNotify({
title: 'Failed to load!',
text: 'Failed to fetch CSF settings.',
type:'error'
});
}
};
$scope.modifyPorts = function(protocol){
$scope.csfLoading = false;
var ports;
if(protocol === 'TCP_IN'){
ports = $scope.tcpIN;
}else if(protocol === 'TCP_OUT'){
ports = $scope.tcpOUT;
}else if(protocol === 'UDP_IN'){
ports = $scope.udpIN;
}else if(protocol === 'UDP_OUT'){
ports = $scope.udpOUT;
}
url = "/firewall/modifyPorts";
var data = {
protocol: protocol,
ports : ports
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.csfLoading = true;
if(response.data.status === 1){
new PNotify({
title: 'Success!',
text: 'Changes successfully applied.',
type:'success'
});
}else{
new PNotify({
title: 'Error!',
text: response.data.error_message,
type:'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.csfLoading = true;
new PNotify({
title: 'Failed to load!',
text: 'Failed to fetch CSF settings.',
type:'error'
});
}
};
$scope.modifyIPs = function(mode){
$scope.csfLoading = false;
var ipAddress;
if(mode === 'allowIP'){
ipAddress = $scope.allowIP;
}else if(mode === 'blockIP'){
ipAddress = $scope.blockIP;
}
url = "/firewall/modifyIPs";
var data = {
mode: mode,
ipAddress : ipAddress
};
var config = {
headers : {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data,config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.csfLoading = true;
if(response.data.status === 1){
new PNotify({
title: 'Success!',
text: 'Changes successfully applied.',
type:'success'
});
}else{
new PNotify({
title: 'Error!',
text: response.data.error_message,
type:'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.csfLoading = true;
new PNotify({
title: 'Failed to load!',
text: 'Failed to fetch CSF settings.',
type:'error'
});
}
};
});