diff --git a/CyberCP/settings.py b/CyberCP/settings.py
index 79665436c..6f399e89d 100755
--- a/CyberCP/settings.py
+++ b/CyberCP/settings.py
@@ -65,6 +65,7 @@ INSTALLED_APPS = [
'containerization',
'CLManager',
'IncBackups',
+ 'configservercsf'
# 'WebTerminal'
]
diff --git a/configservercsf/__init__.py b/configservercsf/__init__.py
new file mode 100644
index 000000000..58ef6a5ea
--- /dev/null
+++ b/configservercsf/__init__.py
@@ -0,0 +1 @@
+#default_app_config = 'configservercsf.apps.configservercsfConfig'
diff --git a/configservercsf/admin.py b/configservercsf/admin.py
new file mode 100644
index 000000000..13be29d96
--- /dev/null
+++ b/configservercsf/admin.py
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.contrib import admin
+
+# Register your models here.
diff --git a/configservercsf/apps.py b/configservercsf/apps.py
new file mode 100644
index 000000000..fae710cba
--- /dev/null
+++ b/configservercsf/apps.py
@@ -0,0 +1,7 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.apps import AppConfig
+
+class configservercsfConfig(AppConfig):
+ name = 'configservercsf'
diff --git a/configservercsf/config b/configservercsf/config
new file mode 100644
index 000000000..e69de29bb
diff --git a/configservercsf/meta.xml b/configservercsf/meta.xml
new file mode 100644
index 000000000..4515593e9
--- /dev/null
+++ b/configservercsf/meta.xml
@@ -0,0 +1,7 @@
+
+
+ ConfigServer Security and Firewall
+ plugin
+ ConfigServer Security and Firewall
+ 1.0
+
diff --git a/configservercsf/migrations/__init__.py b/configservercsf/migrations/__init__.py
new file mode 100644
index 000000000..e69de29bb
diff --git a/configservercsf/models.py b/configservercsf/models.py
new file mode 100644
index 000000000..1dfab7604
--- /dev/null
+++ b/configservercsf/models.py
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models
+
+# Create your models here.
diff --git a/configservercsf/signals.py b/configservercsf/signals.py
new file mode 100644
index 000000000..3db8f8c4a
--- /dev/null
+++ b/configservercsf/signals.py
@@ -0,0 +1,13 @@
+from django.dispatch import receiver
+from django.shortcuts import redirect
+from firewall.signals import preFirewallHome, preCSF
+
+@receiver(preFirewallHome)
+def csfFirewallHome(sender, **kwargs):
+ request = kwargs['request']
+ return redirect('/configservercsf/')
+
+@receiver(preCSF)
+def csfCSF(sender, **kwargs):
+ request = kwargs['request']
+ return redirect('/configservercsf/')
diff --git a/configservercsf/templates/configservercsf/index.html b/configservercsf/templates/configservercsf/index.html
new file mode 100644
index 000000000..fcae8b1a0
--- /dev/null
+++ b/configservercsf/templates/configservercsf/index.html
@@ -0,0 +1,17 @@
+{% extends "baseTemplate/index.html" %}
+{% load i18n %}
+{% block title %}ConfigServer Security and Firewall{% endblock %}
+{% block content %}
+
+{% load static %}
+
+
+
+
+{% endblock %}
diff --git a/configservercsf/templates/configservercsf/menu.html b/configservercsf/templates/configservercsf/menu.html
new file mode 100644
index 000000000..d2888156f
--- /dev/null
+++ b/configservercsf/templates/configservercsf/menu.html
@@ -0,0 +1,25 @@
+
+
+ ConfigServer Services
+
+
+
+
+
diff --git a/configservercsf/tests.py b/configservercsf/tests.py
new file mode 100644
index 000000000..5982e6bcd
--- /dev/null
+++ b/configservercsf/tests.py
@@ -0,0 +1,6 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.test import TestCase
+
+# Create your tests here.
diff --git a/configservercsf/urls.py b/configservercsf/urls.py
new file mode 100644
index 000000000..1f47c8774
--- /dev/null
+++ b/configservercsf/urls.py
@@ -0,0 +1,7 @@
+from django.urls import path, re_path
+from . import views
+
+urlpatterns = [
+ path('', views.configservercsf, name='configservercsf'),
+ path('iframe/', views.configservercsfiframe, name='configservercsfiframe'),
+]
\ No newline at end of file
diff --git a/configservercsf/views.py b/configservercsf/views.py
new file mode 100644
index 000000000..4c1b84b99
--- /dev/null
+++ b/configservercsf/views.py
@@ -0,0 +1,57 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+import os
+import os.path
+import sys
+import django
+
+sys.path.append('/usr/local/CyberCP')
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
+django.setup()
+from plogical.acl import ACLManager
+
+from plogical.processUtilities import ProcessUtilities
+from django.views.decorators.csrf import csrf_exempt
+import tempfile
+from django.http import HttpResponse
+from django.views.decorators.clickjacking import xframe_options_exempt
+from plogical.httpProc import httpProc
+
+def configservercsf(request):
+ proc = httpProc(request, 'configservercsf/index.html',
+ None, 'admin')
+ return proc.render()
+
+@csrf_exempt
+@xframe_options_exempt
+def configservercsfiframe(request):
+ userID = request.session['userID']
+ currentACL = ACLManager.loadedACL(userID)
+
+ if currentACL['admin'] == 1:
+ pass
+ else:
+ return ACLManager.loadError()
+
+ if request.method == 'GET':
+ qs = request.GET.urlencode()
+ elif request.method == 'POST':
+ qs = request.POST.urlencode()
+
+ try:
+ tmp = tempfile.NamedTemporaryFile(mode = "w", delete=False)
+ tmp.write(qs)
+ tmp.close()
+ command = "/usr/local/csf/bin/cyberpanel.pl '" + tmp.name + "'"
+
+ try:
+ output = ProcessUtilities.outputExecutioner(command)
+ except:
+ output = "Output Error from csf UI script"
+
+ os.unlink(tmp.name)
+ except:
+ output = "Unable to create csf UI temp file"
+
+ return HttpResponse(output)
diff --git a/plogical/csf.py b/plogical/csf.py
index 3337b569d..87568c3e5 100755
--- a/plogical/csf.py
+++ b/plogical/csf.py
@@ -54,71 +54,106 @@ class CSF(multi.Thread):
### manually update csf views.py because it does not load CyberPanel properly in default configurations
-# content = '''
-# # -*- coding: utf-8 -*-
-# from __future__ import unicode_literals
-#
-# import os
-# import os.path
-# import sys
-# import django
-# sys.path.append('/usr/local/CyberCP')
-# os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
-# django.setup()
-# import json
-# from plogical.acl import ACLManager
-# from plogical.httpProc import httpProc
-# import plogical.CyberCPLogFileWriter as logging
-# import subprocess
-# from django.shortcuts import HttpResponse, render
-# from plogical.processUtilities import ProcessUtilities
-# from django.views.decorators.csrf import csrf_exempt
-# import tempfile
-# from django.http import HttpResponse
-# from django.views.decorators.clickjacking import xframe_options_exempt
-#
-# def configservercsf(request):
-# proc = httpProc(request, 'configservercsf/index.html',
-# None, 'admin')
-# return proc.render()
-#
-# @csrf_exempt
-# @xframe_options_exempt
-# def configservercsfiframe(request):
-# userID = request.session['userID']
-# currentACL = ACLManager.loadedACL(userID)
-#
-# if currentACL['admin'] == 1:
-# pass
-# else:
-# return ACLManager.loadError()
-#
-# if request.method == 'GET':
-# qs = request.GET.urlencode()
-# elif request.method == 'POST':
-# qs = request.POST.urlencode()
-#
-# try:
-# tmp = tempfile.NamedTemporaryFile(mode = "w", delete=False)
-# tmp.write(qs)
-# tmp.close()
-# command = "/usr/local/csf/bin/cyberpanel.pl '" + tmp.name + "'"
-#
-# try:
-# output = ProcessUtilities.outputExecutioner(command)
-# except:
-# output = "Output Error from csf UI script"
-#
-# os.unlink(tmp.name)
-# except:
-# output = "Unable to create csf UI temp file"
-#
-# return HttpResponse(output)
-# '''
-#
-# WriteToFile = open('cyberpanel/configservercsf/views.py', 'w')
-# WriteToFile.write(content)
-# WriteToFile.close()
+ content = '''
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+import os
+import os.path
+import sys
+import django
+
+sys.path.append('/usr/local/CyberCP')
+os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
+django.setup()
+from plogical.acl import ACLManager
+
+from plogical.processUtilities import ProcessUtilities
+from django.views.decorators.csrf import csrf_exempt
+import tempfile
+from django.http import HttpResponse
+from django.views.decorators.clickjacking import xframe_options_exempt
+from plogical.httpProc import httpProc
+
+def configservercsf(request):
+ proc = httpProc(request, 'configservercsf/index.html',
+ None, 'admin')
+ return proc.render()
+
+@csrf_exempt
+@xframe_options_exempt
+def configservercsfiframe(request):
+ userID = request.session['userID']
+ currentACL = ACLManager.loadedACL(userID)
+
+ if currentACL['admin'] == 1:
+ pass
+ else:
+ return ACLManager.loadError()
+
+ if request.method == 'GET':
+ qs = request.GET.urlencode()
+ elif request.method == 'POST':
+ qs = request.POST.urlencode()
+
+ try:
+ tmp = tempfile.NamedTemporaryFile(mode = "w", delete=False)
+ tmp.write(qs)
+ tmp.close()
+ command = "/usr/local/csf/bin/cyberpanel.pl '" + tmp.name + "'"
+
+ try:
+ output = ProcessUtilities.outputExecutioner(command)
+ except:
+ output = "Output Error from csf UI script"
+
+ os.unlink(tmp.name)
+ except:
+ output = "Unable to create csf UI temp file"
+
+ return HttpResponse(output)
+'''
+
+ WriteToFile = open('cyberpanel/configservercsf/views.py', 'w')
+ WriteToFile.write(content)
+ WriteToFile.close()
+
+ ### now update content of signals.py
+ WriteToFile = open('cyberpanel/configservercsf/signals.py', 'w')
+ WriteToFile.close()
+
+ ### now update content of apps.py
+
+ content = '''
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.apps import AppConfig
+
+class configservercsfConfig(AppConfig):
+ name = 'configservercsf'
+'''
+
+ WriteToFile = open('cyberpanel/configservercsf/apps.py', 'w')
+ WriteToFile.write(content)
+ WriteToFile.close()
+
+
+ ### now update content of urls.py
+
+ content = '''
+from django.urls import path, re_path
+from . import views
+
+urlpatterns = [
+ path('', views.configservercsf, name='configservercsf'),
+ path('iframe/', views.configservercsfiframe, name='configservercsfiframe'),
+]
+'''
+
+ WriteToFile = open('cyberpanel/configservercsf/urls.py', 'w')
+ WriteToFile.write(content)
+ WriteToFile.close()
command = "chmod +x install.sh"
ProcessUtilities.normalExecutioner(command)