示例#1
0
def main(argv):
    try:
        mode = argv.mode
        account = Account.objects.filter().first()
        if mode == 'create':
            if account is not None:
                raise ValueError('Account has been existed!')
            username = argv.username
            password = argv.password
            email = argv.email
            firstname = argv.firstname
            lastname = argv.lastname
            # validate
            checkUsername(username)
            checkEmail(email)
            checkPassword(password)
            account = Account(login_id=username,
                              password=hash_password(password),
                              email=email,
                              first_name=firstname,
                              last_name=lastname)
            account.save()
            print('Create User successfully!\nDone!')
        else:
            password = argv.password
            if account is None:
                print('No accounts have been created yet!')
            else:
                checkPassword(password)
                account = Account.objects.get(pk=account.id)
                account.password = hash_password(password)
                account.save()
                print('Change password successfully!\nDone!')
    except BaseException as e:
        print('Error: {}'.format(str(e)))
示例#2
0
def changeUserPassAPI(request):
    try:
        if request.method == 'POST':

            data = json.loads(request.body)

            websiteOwner = data['websiteOwner']
            ownerPassword = data['ownerPassword']
            adminUser = data['adminUser']
            adminPass = data['adminPass']

            admin = Administrator.objects.get(userName=adminUser)

            if hashPassword.check_password(admin.password, adminPass):
                pass
            else:
                data_ret = {
                    "changeStatus": 0,
                    'error_message': "Could not authorize access to API"
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            websiteOwn = Administrator.objects.get(userName=websiteOwner)
            websiteOwn.password = hashPassword.hash_password(ownerPassword)
            websiteOwn.save()

            data_ret = {'changeStatus': 1, 'error_message': "None"}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except BaseException, msg:
        data_ret = {'changeStatus': 0, 'error_message': str(msg)}
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#3
0
def changeAdminPassword(request):
    try:

        data = json.loads(request.body)

        adminPass = data['password']
        randomFile = data['randomFile']

        if os.path.exists(randomFile):
            os.remove(randomFile)
            admin = Administrator.objects.get(userName="******")
            admin.password = hashPassword.hash_password(adminPass)
            admin.save()
            data_ret = {"changed": 1, 'error_message': "None"}

            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
        else:
            data_ret = {
                "changed": 0,
                'error_message':
                "Failed to authorize access to change password!"
            }

            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except BaseException, msg:
        data_ret = {
            "changed": 0,
            'error_message': "Failed to authorize access to change password!"
        }

        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#4
0
def changeAdminPassword(request):
    try:

        data = json.loads(request.body)

        adminPass = data['password']
        randomFile = data['randomFile']

        if os.path.exists(randomFile):
            os.remove(randomFile)
            admin = Administrator.objects.get(userName="******")
            admin.password = hashPassword.hash_password(adminPass)
            admin.save()
            data_ret = {"changed": 1,
                        'error_message': "None"}

            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
        else:
            data_ret = {"changed": 0,
                        'error_message': "Failed to authorize access to change password!"}

            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)



    except BaseException, msg:
        data_ret = {"changed": 0,
                    'error_message': "Failed to authorize access to change password!"}

        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#5
0
def main():

    parser = argparse.ArgumentParser(description='Reset admin user password!')
    parser.add_argument('--password', help='New Password')
    args = parser.parse_args()

    adminPass = args.password

    numberOfAdministrator = Administrator.objects.count()
    if numberOfAdministrator == 0:
        ACLManager.createDefaultACLs()
        acl = ACL.objects.get(name='admin')
        token = hashPassword.generateToken('admin', '1234567')

        email = '*****@*****.**'
        admin = Administrator(userName="******",
                              password=hashPassword.hash_password(adminPass),
                              type=1,
                              email=email,
                              firstName="Cyber",
                              lastName="Panel",
                              acl=acl,
                              token=token)
        admin.save()

        vers = version(currentVersion="1.9", build=2)
        vers.save()

        package = Package(admin=admin,
                          packageName="Default",
                          diskSpace=1000,
                          bandwidth=1000,
                          ftpAccounts=1000,
                          dataBases=1000,
                          emailAccounts=1000,
                          allowedDomains=20)
        package.save()
        print("Admin password successfully changed!")
        return 1

    token = hashPassword.generateToken('admin', adminPass)
    admin = Administrator.objects.get(userName="******")
    admin.password = hashPassword.hash_password(adminPass)
    admin.token = token
    admin.save()

    print("Admin password successfully changed!")
示例#6
0
def changeUserPassAPI(request):
    try:
        if request.method == 'POST':

            data = json.loads(request.body)


            websiteOwner = data['websiteOwner']
            ownerPassword = data['ownerPassword']
            adminUser = data['adminUser']
            adminPass = data['adminPass']

            admin = Administrator.objects.get(userName=adminUser)

            if hashPassword.check_password(admin.password, adminPass):
                pass
            else:
                data_ret = {"changeStatus": 0,
                            'error_message': "Could not authorize access to API"}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)


            websiteOwn = Administrator.objects.get(userName=websiteOwner)
            websiteOwn.password = hashPassword.hash_password(ownerPassword)
            websiteOwn.save()



            data_ret = {'changeStatus': 1, 'error_message': "None"}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except BaseException, msg:
        data_ret = {'changeStatus': 0, 'error_message': str(msg)}
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#7
0
def loadLoginPage(request):
    try:
        userID = request.session['userID']
        admin = Administrator.objects.get(pk=userID)

        cpuRamDisk = SystemInformation.cpuRamDisk()

        finaData = {
            "type": admin.type,
            'ramUsage': cpuRamDisk['ramUsage'],
            'cpuUsage': cpuRamDisk['cpuUsage'],
            'diskUsage': cpuRamDisk['diskUsage']
        }

        return render(request, 'baseTemplate/homePage.html', finaData)
    except KeyError:

        numberOfAdministrator = Administrator.objects.count()

        password = hashPassword.hash_password('1234567')

        if numberOfAdministrator == 0:
            email = '*****@*****.**'
            admin = Administrator(userName="******",
                                  password=password,
                                  type=1,
                                  email=email,
                                  firstName="Cyber",
                                  lastName="Panel")
            admin.save()

            vers = version(currentVersion="1.6", build=4)
            vers.save()

            package = Package(admin=admin,
                              packageName="Default",
                              diskSpace=1000,
                              bandwidth=1000,
                              ftpAccounts=1000,
                              dataBases=1000,
                              emailAccounts=1000,
                              allowedDomains=20)
            package.save()

            newFWRule = FirewallRules(name="panel", proto="tcp", port="8090")
            newFWRule.save()

            newFWRule = FirewallRules(name="http", proto="tcp", port="80")
            newFWRule.save()

            newFWRule = FirewallRules(name="https", proto="tcp", port="443")
            newFWRule.save()

            newFWRule = FirewallRules(name="ftp", proto="tcp", port="21")
            newFWRule.save()

            newFWRule = FirewallRules(name="smtp", proto="tcp", port="25")
            newFWRule.save()

            newFWRule = FirewallRules(name="smtps", proto="tcp", port="587")
            newFWRule.save()

            newFWRule = FirewallRules(name="ssmtp", proto="tcp", port="465")
            newFWRule.save()

            newFWRule = FirewallRules(name="pop3", proto="tcp", port="110")
            newFWRule.save()

            newFWRule = FirewallRules(name="imap", proto="tcp", port="143")
            newFWRule.save()

            newFWRule = FirewallRules(name="simap", proto="tcp", port="993")
            newFWRule.save()

            newFWRule = FirewallRules(name="dns", proto="udp", port="53")
            newFWRule.save()

            newFWRule = FirewallRules(name="dnstcp", proto="tcp", port="53")
            newFWRule.save()

            newFWRule = FirewallRules(name="ftptls",
                                      proto="tcp",
                                      port="40110-40210")
            newFWRule.save()

            return render(request, 'loginSystem/login.html', {})
        else:
            return render(request, 'loginSystem/login.html', {})
示例#8
0
def saveModifications(request):
    try:
        val = request.session['userID']
        try:

            if request.method == 'POST':
                data = json.loads(request.body)
                accountUsername = data['accountUsername']
                firstName = data['firstName']
                lastName = data['lastName']
                email = data['email']

                admin = Administrator.objects.get(pk=val)
                user = Administrator.objects.get(userName=accountUsername)

                password = hashPassword.hash_password(data['password'])

                if admin.type != 1:
                    if admin != user:
                        data_ret = {
                            'saveStatus': 1,
                            'error_message': 'Not enough privileges'
                        }
                        json_data = json.dumps(data_ret)
                        return HttpResponse(json_data)

                if user.type == 1:
                    userAccountsLimit = 0
                    websitesLimit = 0

                    user.firstName = firstName
                    user.lastName = lastName
                    user.email = email
                    user.password = password
                    user.initWebsitesLimit = websitesLimit
                    user.initUserAccountsLimit = userAccountsLimit
                    user.type = 1

                    user.save()

                    data_ret = {'saveStatus': 1, 'error_message': 'None'}
                    json_data = json.dumps(data_ret)
                    return HttpResponse(json_data)

                if data['accountType'] == "Reseller":
                    userAccountsLimit = 0
                    websitesLimit = 0

                    user.firstName = firstName
                    user.lastName = lastName
                    user.email = email
                    user.password = password
                    user.initWebsitesLimit = websitesLimit
                    user.initUserAccountsLimit = userAccountsLimit
                    user.type = 2

                    user.save()

                elif data['accountType'] == "Normal User":

                    user.firstName = firstName
                    user.lastName = lastName
                    user.email = email
                    user.password = password
                    user.initWebsitesLimit = 0
                    user.type = 3

                    user.save()
                else:
                    userAccountsLimit = 0
                    websitesLimit = 0

                    user.firstName = firstName
                    user.lastName = lastName
                    user.email = email
                    user.password = password
                    user.initWebsitesLimit = websitesLimit
                    user.initUserAccountsLimit = userAccountsLimit
                    user.type = 1

                    user.save()

                data_ret = {'saveStatus': 1, 'error_message': 'None'}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

        except BaseException, msg:
            data_ret = {'saveStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except KeyError:
        data_ret = {
            'saveStatus': 0,
            'error_message': "Not logged in as admin",
        }
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#9
0
def createWebsite(request):
    try:
        if request.method == 'POST':

            data = json.loads(request.body)

            adminUser = data['adminUser']
            adminPass = data['adminPass']
            domain = data['domainName']
            adminEmail = data['ownerEmail']
            packageName = data['packageName']
            websiteOwner = data['websiteOwner']
            ownerPassword = data['ownerPassword']

            try:
                website = Websites.objects.get(domain=domain)
                data_ret = {
                    "existsStatus": 0,
                    'createWebSiteStatus': 0,
                    'error_message': "Website Already Exists"
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)
            except:
                pass

            phpSelection = "PHP 7.0"

            admin = Administrator.objects.get(userName=adminUser)

            if hashPassword.check_password(admin.password, adminPass):
                pass
            else:
                data_ret = {
                    "existsStatus": 0,
                    'createWebSiteStatus': 0,
                    'error_message': "Could not authorize access to API"
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            if adminEmail is None:
                adminEmail = "*****@*****.**"

            try:
                websiteOwn = Administrator(
                    userName=websiteOwner,
                    password=hashPassword.hash_password(ownerPassword),
                    email=adminEmail,
                    type=3,
                    owner=admin.pk,
                    initWebsitesLimit=1)
                websiteOwn.save()
            except BaseException, msg:
                pass

            if virtualHostUtilities.checkIfVirtualHostExists(domain) == 1:
                data_ret = {
                    "existsStatus":
                    1,
                    'createWebSiteStatus':
                    0,
                    'error_message':
                    "This domain already exists in Litespeed Configurations, first delete the domain to perform sweap."
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            if virtualHostUtilities.createDirectoryForVirtualHost(
                    domain, adminEmail, phpSelection) != 1:
                numberOfWebsites = Websites.objects.count(
                ) + ChildDomains.objects.count()
                virtualHostUtilities.deleteVirtualHostConfigurations(
                    domain, numberOfWebsites)
                data_ret = {
                    "existsStatus":
                    1,
                    'createWebSiteStatus':
                    0,
                    'error_message':
                    "Can not create configurations, see CyberCP main log file."
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            if virtualHostUtilities.createConfigInMainVirtualHostFile(
                    domain) != 1:
                numberOfWebsites = Websites.objects.count(
                ) + ChildDomains.objects.count()
                virtualHostUtilities.deleteVirtualHostConfigurations(
                    domain, numberOfWebsites)
                data_ret = {
                    "existsStatus":
                    1,
                    'createWebSiteStatus':
                    0,
                    'error_message':
                    "Can not create configurations, see CyberCP main log file."
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            installUtilities.reStartLiteSpeed()

            selectedPackage = Package.objects.get(packageName=packageName)

            websiteOwn = Administrator.objects.get(userName=websiteOwner)

            website = Websites(admin=websiteOwn,
                               package=selectedPackage,
                               domain=domain,
                               adminEmail=adminEmail,
                               phpSelection=phpSelection,
                               ssl=0)

            website.save()

            shutil.copy("/usr/local/CyberCP/index.html",
                        "/home/" + domain + "/public_html/index.html")

            data_ret = {
                'createWebSiteStatus': 1,
                'error_message': "None",
                "existsStatus": 0
            }
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except BaseException, msg:
        numberOfWebsites = Websites.objects.count(
        ) + ChildDomains.objects.count()
        virtualHostUtilities.deleteVirtualHostConfigurations(
            domain, numberOfWebsites)
        data_ret = {
            'createWebSiteStatus': 0,
            'error_message': str(msg),
            "existsStatus": 0
        }
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#10
0
def changeAdminPassword(request):
    try:

        data = json.loads(request.body)

        adminPass = data['password']
        randomFile = data['randomFile']

        if os.path.exists(randomFile):
            numberOfAdministrator = Administrator.objects.count()
            if numberOfAdministrator == 0:
                ACLManager.createDefaultACLs()
                acl = ACL.objects.get(name='admin')
                token = hashPassword.generateToken('admin', '1234567')

                email = '*****@*****.**'
                admin = Administrator(userName="******", password=hashPassword.hash_password(adminPass), type=1, email=email,
                                      firstName="Cyber", lastName="Panel", acl=acl, token=token)
                admin.save()

                vers = version(currentVersion="1.7", build=7)
                vers.save()

                package = Package(admin=admin, packageName="Default", diskSpace=1000,
                                  bandwidth=1000, ftpAccounts=1000, dataBases=1000,
                                  emailAccounts=1000, allowedDomains=20)
                package.save()

                newFWRule = FirewallRules(name="panel", proto="tcp", port="8090")
                newFWRule.save()

                newFWRule = FirewallRules(name="http", proto="tcp", port="80")
                newFWRule.save()

                newFWRule = FirewallRules(name="https", proto="tcp", port="443")
                newFWRule.save()

                newFWRule = FirewallRules(name="ftp", proto="tcp", port="21")
                newFWRule.save()

                newFWRule = FirewallRules(name="smtp", proto="tcp", port="25")
                newFWRule.save()

                newFWRule = FirewallRules(name="smtps", proto="tcp", port="587")
                newFWRule.save()

                newFWRule = FirewallRules(name="ssmtp", proto="tcp", port="465")
                newFWRule.save()

                newFWRule = FirewallRules(name="pop3", proto="tcp", port="110")
                newFWRule.save()

                newFWRule = FirewallRules(name="imap", proto="tcp", port="143")
                newFWRule.save()

                newFWRule = FirewallRules(name="simap", proto="tcp", port="993")
                newFWRule.save()

                newFWRule = FirewallRules(name="dns", proto="udp", port="53")
                newFWRule.save()

                newFWRule = FirewallRules(name="dnstcp", proto="tcp", port="53")
                newFWRule.save()

                newFWRule = FirewallRules(name="ftptls", proto="tcp", port="40110-40210")
                newFWRule.save()

                data_ret = {"changed": 1,
                            'error_message': "None"}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)
            os.remove(randomFile)
            admin = Administrator.objects.get(userName="******")
            admin.password = hashPassword.hash_password(adminPass)
            admin.save()
            data_ret = {"changed": 1,
                        'error_message': "None"}

            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
        else:
            data_ret = {"changed": 0,
                        'error_message': "Failed to authorize access to change password!"}

            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
    except BaseException, msg:
        data_ret = {"changed": 0,
                    'error_message': str(msg)}

        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#11
0
文件: views.py 项目: qtwrk/cyberpanel
def loadLoginPage(request):
    try:
        userID = request.session['userID']
        currentACL = ACLManager.loadedACL(userID)

        cpuRamDisk = SystemInformation.cpuRamDisk()

        if currentACL['admin'] == 1:
            admin = 1
        else:
            admin = 0

        finaData = {
            "admin": admin,
            'ramUsage': cpuRamDisk['ramUsage'],
            'cpuUsage': cpuRamDisk['cpuUsage'],
            'diskUsage': cpuRamDisk['diskUsage']
        }

        return render(request, 'baseTemplate/homePage.html', finaData)
    except KeyError:

        numberOfAdministrator = Administrator.objects.count()
        password = hashPassword.hash_password('1234567')
        noOfRules = FirewallRules.objects.count()

        if noOfRules == 0:
            newFWRule = FirewallRules(name="panel", proto="tcp", port="8090")
            newFWRule.save()

            newFWRule = FirewallRules(name="http", proto="tcp", port="80")
            newFWRule.save()

            newFWRule = FirewallRules(name="https", proto="tcp", port="443")
            newFWRule.save()

            newFWRule = FirewallRules(name="ftp", proto="tcp", port="21")
            newFWRule.save()

            newFWRule = FirewallRules(name="smtp", proto="tcp", port="25")
            newFWRule.save()

            newFWRule = FirewallRules(name="smtps", proto="tcp", port="587")
            newFWRule.save()

            newFWRule = FirewallRules(name="ssmtp", proto="tcp", port="465")
            newFWRule.save()

            newFWRule = FirewallRules(name="pop3", proto="tcp", port="110")
            newFWRule.save()

            newFWRule = FirewallRules(name="imap", proto="tcp", port="143")
            newFWRule.save()

            newFWRule = FirewallRules(name="simap", proto="tcp", port="993")
            newFWRule.save()

            newFWRule = FirewallRules(name="dns", proto="udp", port="53")
            newFWRule.save()

            newFWRule = FirewallRules(name="dnstcp", proto="tcp", port="53")
            newFWRule.save()

            newFWRule = FirewallRules(name="ftptls",
                                      proto="tcp",
                                      port="40110-40210")
            newFWRule.save()

            newFWRule = FirewallRules(name="quic", proto="udp", port="443")
            newFWRule.save()

        if numberOfAdministrator == 0:
            ACLManager.createDefaultACLs()
            acl = ACL.objects.get(name='admin')

            token = hashPassword.generateToken('admin', '1234567')

            email = '*****@*****.**'
            admin = Administrator(userName="******",
                                  password=password,
                                  type=1,
                                  email=email,
                                  firstName="Cyber",
                                  lastName="Panel",
                                  acl=acl,
                                  token=token)
            admin.save()

            vers = version(currentVersion="1.9", build=1)
            vers.save()

            package = Package(admin=admin,
                              packageName="Default",
                              diskSpace=1000,
                              bandwidth=1000,
                              ftpAccounts=1000,
                              dataBases=1000,
                              emailAccounts=1000,
                              allowedDomains=20)
            package.save()
            return render(request, 'loginSystem/login.html', {})
        else:
            return render(request, 'loginSystem/login.html', {})
示例#12
0
def createWebsite(request):
    try:
        if request.method == 'POST':

            data = json.loads(request.body)

            adminUser = data['adminUser']
            adminPass = data['adminPass']
            domain = data['domainName']
            adminEmail = data['ownerEmail']
            packageName = data['packageName']
            websiteOwner = data['websiteOwner']
            ownerPassword = data['ownerPassword']
            externalApp = "".join(re.findall("[a-zA-Z]+", domain))[:7]

            try:
                website = Websites.objects.get(domain=domain)
                data_ret = {
                    "existsStatus": 0,
                    'createWebSiteStatus': 0,
                    'error_message': "Website Already Exists"
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)
            except:
                pass

            try:
                website = ChildDomains.objects.get(domain=domain)
                data_ret = {
                    "existsStatus": 0,
                    'createWebSiteStatus': 0,
                    'error_message': "Website Already Exists"
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)
            except:
                pass

            phpSelection = "PHP 7.0"

            admin = Administrator.objects.get(userName=adminUser)

            if hashPassword.check_password(admin.password, adminPass):
                pass
            else:
                data_ret = {
                    "existsStatus": 0,
                    'createWebSiteStatus': 0,
                    'error_message': "Could not authorize access to API"
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            if adminEmail is None:
                adminEmail = "*****@*****.**"

            try:
                websiteOwn = Administrator(
                    userName=websiteOwner,
                    password=hashPassword.hash_password(ownerPassword),
                    email=adminEmail,
                    type=3,
                    owner=admin.pk,
                    initWebsitesLimit=1)
                websiteOwn.save()
            except BaseException, msg:
                pass

            ## Create Configurations

            numberOfWebsites = str(Websites.objects.count() +
                                   ChildDomains.objects.count())
            sslpath = "/home/" + domain + "/public_html"

            execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py"

            execPath = execPath + " createVirtualHost --virtualHostName " + domain + " --administratorEmail " + adminEmail + " --phpVersion '" + phpSelection + "' --virtualHostUser " + externalApp + " --numberOfSites " + numberOfWebsites + " --ssl " + str(
                '0') + " --sslPath " + sslpath

            output = subprocess.check_output(shlex.split(execPath))

            if output.find("1,None") > -1:
                pass
            else:
                data_ret = {
                    'createWebSiteStatus': 0,
                    'error_message': output,
                    "existsStatus": 0
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            ## Create Configurations ends here

            selectedPackage = Package.objects.get(packageName=packageName)

            websiteOwn = Administrator.objects.get(userName=websiteOwner)

            website = Websites(admin=websiteOwn,
                               package=selectedPackage,
                               domain=domain,
                               adminEmail=adminEmail,
                               phpSelection=phpSelection,
                               ssl=0,
                               externalApp=externalApp)

            website.save()

            data_ret = {
                'createWebSiteStatus': 1,
                'error_message': "None",
                "existsStatus": 0
            }
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except BaseException, msg:
        data_ret = {
            'createWebSiteStatus': 0,
            'error_message': str(msg),
            "existsStatus": 0
        }
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#13
0
def submitUserCreation(request):
    try:

        try:
            userID = request.session['userID']
            currentACL = ACLManager.loadedACL(userID)

            data = json.loads(request.body)
            firstName = data['firstName']
            lastName = data['lastName']
            email = data['email']
            userName = data['userName']
            password = data['password']
            websitesLimit = data['websitesLimit']
            selectedACL = data['selectedACL']
            securityLevel = data['securityLevel']

            selectedACL = ACL.objects.get(name=selectedACL)

            if selectedACL.adminStatus == 1:
                type = 1
            else:
                type = 3

            if securityLevel == 'LOW':
                securityLevel = secMiddleware.LOW
            else:
                securityLevel = secMiddleware.HIGH

            token = hashPassword.generateToken(userName, password)
            password = hashPassword.hash_password(password)
            currentAdmin = Administrator.objects.get(pk=userID)

            if ACLManager.websitesLimitCheck(currentAdmin, websitesLimit) == 0:
                data_ret = {
                    'status':
                    0,
                    'createStatus':
                    0,
                    'error_message':
                    "You've reached maximum websites limit as a reseller."
                }

                final_json = json.dumps(data_ret)
                return HttpResponse(final_json)

            if currentACL['admin'] == 1:

                newAdmin = Administrator(
                    firstName=firstName,
                    lastName=lastName,
                    email=email,
                    type=type,
                    userName=userName,
                    password=password,
                    initWebsitesLimit=websitesLimit,
                    owner=currentAdmin.pk,
                    acl=selectedACL,
                    token=token,
                    securityLevel=securityLevel,
                )
                newAdmin.save()

            elif currentACL['changeUserACL'] == 1:

                newAdmin = Administrator(
                    firstName=firstName,
                    lastName=lastName,
                    email=email,
                    type=type,
                    userName=userName,
                    password=password,
                    initWebsitesLimit=websitesLimit,
                    owner=currentAdmin.pk,
                    acl=selectedACL,
                    token=token,
                    securityLevel=securityLevel,
                )
                newAdmin.save()
            elif currentACL['createNewUser'] == 1:

                newAdmin = Administrator(
                    firstName=firstName,
                    lastName=lastName,
                    email=email,
                    type=type,
                    userName=userName,
                    password=password,
                    initWebsitesLimit=websitesLimit,
                    owner=currentAdmin.pk,
                    acl=selectedACL,
                    token=token,
                    securityLevel=securityLevel,
                )
                newAdmin.save()
            else:
                data_ret = {
                    'status':
                    0,
                    'createStatus':
                    0,
                    'error_message':
                    "You are not authorized to access this resource."
                }

                final_json = json.dumps(data_ret)
                return HttpResponse(final_json)

            data_ret = {
                'status': 1,
                'createStatus': 1,
                'error_message': "None"
            }
            final_json = json.dumps(data_ret)
            return HttpResponse(final_json)

        except BaseException, msg:
            data_ret = {
                'status': 0,
                'createStatus': 0,
                'error_message': str(msg)
            }
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except KeyError:
        data_ret = {
            'status': 0,
            'createStatus': 0,
            'error_message': "Not logged in as admin",
        }
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#14
0
def saveModifications(request):
    try:
        val = request.session['userID']
        try:
            if request.method == 'POST':
                data = json.loads(request.body)
                accountUsername = data['accountUsername']
                firstName = data['firstName']
                lastName = data['lastName']
                email = data['email']
                securityLevel = data['securityLevel']

                user = Administrator.objects.get(userName=accountUsername)

                currentACL = ACLManager.loadedACL(val)
                loggedUser = Administrator.objects.get(pk=val)

                if currentACL['admin'] == 1:
                    pass
                elif user.owner == loggedUser.pk:
                    pass
                elif user.pk == loggedUser.pk:
                    pass
                else:
                    data_ret = {
                        'fetchStatus': 0,
                        'error_message': 'Un-authorized access.'
                    }
                    json_data = json.dumps(data_ret)
                    return HttpResponse(json_data)

                token = hashPassword.generateToken(accountUsername,
                                                   data['password'])
                password = hashPassword.hash_password(data['password'])

                user.firstName = firstName
                user.lastName = lastName
                user.email = email
                user.password = password
                user.token = token
                user.type = 0

                if securityLevel == 'LOW':
                    user.securityLevel = secMiddleware.LOW
                else:
                    user.securityLevel = secMiddleware.HIGH

                user.save()

                data_ret = {
                    'status': 1,
                    'saveStatus': 1,
                    'error_message': 'None'
                }
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

        except BaseException, msg:
            data_ret = {
                'status': 0,
                'saveStatus': 0,
                'error_message': str(msg)
            }
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except KeyError:
        data_ret = {
            'status': 0,
            'saveStatus': 0,
            'error_message': "Not logged in as admin",
        }
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#15
0
def submitUserCreation(request):
    try:
        val = request.session['userID']
        try:

            currentAdmin = Administrator.objects.get(pk=val)

            childUsers = Administrator.objects.filter(
                owner=currentAdmin.pk).count()

            if currentAdmin.type == 1:
                pass

            else:
                if currentAdmin.initWebsitesLimit == 0:
                    pass

                elif currentAdmin.initUserAccountsLimit == childUsers:
                    data_ret = {
                        'createStatus': 0,
                        'error_message': "Reached Maximum User Creation Limit"
                    }

                    final_json = json.dumps(data_ret)
                    return HttpResponse(final_json)
                else:
                    pass

            if request.method == 'POST':
                data = json.loads(request.body)
                firstName = data['firstName']
                lastName = data['lastName']
                email = data['email']
                userName = data['userName']
                password = data['password']

                password = hashPassword.hash_password(password)

                accountType = data['accountType']

                if accountType == "Admin":

                    newAdmin = Administrator(firstName=firstName,
                                             lastName=lastName,
                                             email=email,
                                             type=1,
                                             userName=userName,
                                             password=password,
                                             initWebsitesLimit=0,
                                             owner=currentAdmin.pk)
                    newAdmin.save()
                    currentAdmin.save()

                    data_ret = {'createStatus': 1, 'error_message': "None"}

                    final_json = json.dumps(data_ret)
                    return HttpResponse(final_json)

                elif accountType == "Normal User":

                    newAdmin = Administrator(firstName=firstName,
                                             lastName=lastName,
                                             email=email,
                                             type=3,
                                             userName=userName,
                                             password=password,
                                             initWebsitesLimit=0,
                                             owner=currentAdmin.pk)
                    newAdmin.save()
                    currentAdmin.save()

                    data_ret = {'createStatus': 1, 'error_message': "None"}

                    final_json = json.dumps(data_ret)
                    return HttpResponse(final_json)
                else:
                    websitesLimit = data['websitesLimit']
                    userAccountsLimit = 0

                    newAdmin = Administrator(
                        firstName=firstName,
                        lastName=lastName,
                        email=email,
                        type=2,
                        userName=userName,
                        password=password,
                        initWebsitesLimit=websitesLimit,
                        initUserAccountsLimit=userAccountsLimit,
                        owner=currentAdmin.pk)
                    newAdmin.save()
                    currentAdmin.save()

                    data_ret = {'createStatus': 1, 'error_message': "None"}
                    final_json = json.dumps(data_ret)
                    return HttpResponse(final_json)

        except BaseException, msg:
            data_ret = {'createStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except KeyError:
        data_ret = {
            'createStatus': 0,
            'error_message': "Not logged in as admin",
        }
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#16
0
def createWebsite(request):
    try:
        if request.method == 'POST':

            data = json.loads(request.body)

            adminUser = data['adminUser']
            adminPass = data['adminPass']
            domain = data['domainName']
            adminEmail = data['ownerEmail']
            packageName = data['packageName']
            websiteOwner = data['websiteOwner']
            ownerPassword = data['ownerPassword']


            try:
                website = Websites.objects.get(domain=domain)
                data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
                            'error_message': "Website Already Exists"}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)
            except:
                pass

            phpSelection = "PHP 7.0"

            admin = Administrator.objects.get(userName=adminUser)

            if hashPassword.check_password(admin.password, adminPass):
                pass
            else:
                data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0,
                            'error_message': "Could not authorize access to API"}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            if adminEmail is None:
                adminEmail = "*****@*****.**"

            try:
                websiteOwn = Administrator(userName=websiteOwner, password=hashPassword.hash_password(ownerPassword),
                                           email=adminEmail, type=3, owner=admin.pk,
                                           initWebsitesLimit=1)
                websiteOwn.save()
            except BaseException,msg:
                pass


            if virtualHostUtilities.checkIfVirtualHostExists(domain) == 1:
                data_ret = {"existsStatus": 1, 'createWebSiteStatus': 0,
                            'error_message': "This domain already exists in Litespeed Configurations, first delete the domain to perform sweap."}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            if virtualHostUtilities.createDirectoryForVirtualHost(domain, adminEmail, phpSelection) != 1:
                numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count()
                virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites)
                data_ret = {"existsStatus": 1, 'createWebSiteStatus': 0,
                            'error_message': "Can not create configurations, see CyberCP main log file."}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            if virtualHostUtilities.createConfigInMainVirtualHostFile(domain) != 1:
                numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count()
                virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites)
                data_ret = {"existsStatus": 1, 'createWebSiteStatus': 0,
                            'error_message': "Can not create configurations, see CyberCP main log file."}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

            installUtilities.reStartLiteSpeed()

            selectedPackage = Package.objects.get(packageName=packageName)

            websiteOwn = Administrator.objects.get(userName=websiteOwner)

            website = Websites(admin=websiteOwn, package=selectedPackage, domain=domain, adminEmail=adminEmail,
                               phpSelection=phpSelection, ssl=0)

            website.save()

            shutil.copy("/usr/local/CyberCP/index.html", "/home/" + domain + "/public_html/index.html")

            data_ret = {'createWebSiteStatus': 1, 'error_message': "None", "existsStatus": 0}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except BaseException, msg:
        numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count()
        virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites)
        data_ret = {'createWebSiteStatus': 0, 'error_message': str(msg), "existsStatus": 0}
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#17
0
def loadLoginPage(request):
    try:
        userID = request.session['userID']
        admin = Administrator.objects.get(pk=userID)

        cpuRamDisk = SystemInformation.cpuRamDisk()

        finaData = {"type": admin.type, 'ramUsage': cpuRamDisk['ramUsage'], 'cpuUsage': cpuRamDisk['cpuUsage'],
                    'diskUsage': cpuRamDisk['diskUsage']}

        return render(request, 'baseTemplate/homePage.html', finaData)
    except KeyError:

        numberOfAdministrator = Administrator.objects.count()


        password = hashPassword.hash_password('1234567')

        if numberOfAdministrator == 0:
            email = '*****@*****.**'
            admin = Administrator(userName="******", password=password, type=1,email=email,
                                  firstName="Cyber",lastName="Panel")
            admin.save()

            vers = version(currentVersion="1.6",build=0)
            vers.save()

            package = Package(admin=admin, packageName="Default", diskSpace=1000,
                                  bandwidth=1000, ftpAccounts=1000, dataBases=1000,
                                  emailAccounts=1000,allowedDomains=20)
            package.save()

            newFWRule = FirewallRules(name="panel", proto="tcp", port="8090")
            newFWRule.save()

            newFWRule = FirewallRules(name="http", proto="tcp", port="80")
            newFWRule.save()

            newFWRule = FirewallRules(name="https", proto="tcp", port="443")
            newFWRule.save()

            newFWRule = FirewallRules(name="ftp", proto="tcp", port="21")
            newFWRule.save()

            newFWRule = FirewallRules(name="smtp", proto="tcp", port="25")
            newFWRule.save()

            newFWRule = FirewallRules(name="smtps", proto="tcp", port="587")
            newFWRule.save()

            newFWRule = FirewallRules(name="ssmtp", proto="tcp", port="465")
            newFWRule.save()

            newFWRule = FirewallRules(name="pop3", proto="tcp", port="110")
            newFWRule.save()

            newFWRule = FirewallRules(name="imap", proto="tcp", port="143")
            newFWRule.save()

            newFWRule = FirewallRules(name="simap", proto="tcp", port="993")
            newFWRule.save()

            newFWRule = FirewallRules(name="dns", proto="udp", port="53")
            newFWRule.save()

            newFWRule = FirewallRules(name="dnstcp", proto="tcp", port="53")
            newFWRule.save()

            newFWRule = FirewallRules(name="ftptls", proto="tcp", port="40110-40210")
            newFWRule.save()

            return render(request, 'loginSystem/login.html', {})
        else:
            return render(request, 'loginSystem/login.html', {})
示例#18
0
def saveModifications(request):
    try:
        val = request.session['userID']
        try:

            if request.method == 'POST':
                data = json.loads(request.body)
                accountUsername = data['accountUsername']
                firstName = data['firstName']
                lastName = data['lastName']
                email = data['email']


                user = Administrator.objects.get(userName=accountUsername)

                password = hashPassword.hash_password(data['password'])

                if user.type == 1:
                    userAccountsLimit = 0
                    websitesLimit = 0

                    user.firstName = firstName
                    user.lastName = lastName
                    user.email = email
                    user.password = password
                    user.initWebsitesLimit = websitesLimit
                    user.initUserAccountsLimit = userAccountsLimit
                    user.type = 1

                    user.save()

                    data_ret = {'saveStatus': 1, 'error_message': 'None'}
                    json_data = json.dumps(data_ret)
                    return HttpResponse(json_data)



                if data['accountType'] == "Reseller":
                    userAccountsLimit = data['userAccountsLimit']
                    websitesLimit = data['websitesLimit']

                    user.firstName = firstName
                    user.lastName = lastName
                    user.email = email
                    user.password = password
                    user.initWebsitesLimit = websitesLimit
                    user.initUserAccountsLimit = userAccountsLimit
                    user.type = 2

                    user.save()

                elif data['accountType'] == "Normal User":
                    websitesLimit = data['websitesLimit']

                    user.firstName = firstName
                    user.lastName = lastName
                    user.email = email
                    user.password = password
                    user.initWebsitesLimit = websitesLimit
                    user.type = 3

                    user.save()
                else:
                    userAccountsLimit = 0
                    websitesLimit = 0

                    user.firstName = firstName
                    user.lastName = lastName
                    user.email = email
                    user.password = password
                    user.initWebsitesLimit = websitesLimit
                    user.initUserAccountsLimit = userAccountsLimit
                    user.type = 1

                    user.save()

                data_ret = {'saveStatus': 1, 'error_message': 'None'}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)



        except BaseException, msg:
            data_ret = {'saveStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except KeyError:
        data_ret = {'saveStatus': 0, 'error_message': "Not logged in as admin",}
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
示例#19
0
def submitUserCreation(request):
    try:
        val = request.session['userID']
        try:

            currentAdmin = Administrator.objects.get(pk=val)

            childUsers = Administrator.objects.filter(owner=currentAdmin.pk).count()

            if currentAdmin.type == 1:
                pass

            else:
                if currentAdmin.initWebsitesLimit == 0:
                    pass

                elif currentAdmin.initUserAccountsLimit == childUsers:
                    data_ret = {'createStatus': 0,
                                'error_message': "Reached Maximum User Creation Limit"}

                    final_json = json.dumps(data_ret)
                    return HttpResponse(final_json)
                else:
                    pass


            if request.method == 'POST':
                data = json.loads(request.body)
                firstName = data['firstName']
                lastName = data['lastName']
                email = data['email']
                userName = data['userName']
                password = data['password']

                password = hashPassword.hash_password(password)

                accountType = data['accountType']

                if accountType == "Admin":

                    newAdmin = Administrator(firstName=firstName,
                                            lastName=lastName,
                                            email=email,
                                            type=1,
                                            userName=userName,
                                            password=password,
                                            initWebsitesLimit=0,
                                            owner=currentAdmin.pk
                                            )
                    newAdmin.save()
                    currentAdmin.save()

                    data_ret = {'createStatus': 1,
                                'error_message': "None"}

                    final_json = json.dumps(data_ret)
                    return HttpResponse(final_json)

                elif accountType == "Normal User":
                    websitesLimit = data['websitesLimit']

                    newAdmin = Administrator(firstName=firstName,
                                            lastName=lastName,
                                            email=email,
                                            type=3,
                                            userName=userName,
                                            password=password,
                                            initWebsitesLimit=websitesLimit,
                                            owner=currentAdmin.pk
                                            )
                    newAdmin.save()
                    currentAdmin.save()

                    data_ret = {'createStatus': 1,
                                'error_message': "None"}

                    final_json = json.dumps(data_ret)
                    return HttpResponse(final_json)
                else:
                    websitesLimit = data['websitesLimit']
                    userAccountsLimit = data['userAccountsLimit']

                    newAdmin = Administrator(firstName=firstName,
                                             lastName=lastName,
                                             email=email,
                                             type=2,
                                             userName=userName,
                                             password=password,
                                             initWebsitesLimit=websitesLimit,
                                             initUserAccountsLimit=userAccountsLimit,
                                             owner=currentAdmin.pk
                                             )
                    newAdmin.save()
                    currentAdmin.save()

                    data_ret = {'createStatus': 1,
                                'error_message': "None"}
                    final_json = json.dumps(data_ret)
                    return HttpResponse(final_json)

        except BaseException, msg:
            data_ret = {'createStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)

    except KeyError:
        data_ret = {'createStatus': 0, 'error_message': "Not logged in as admin",}
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)