Beispiel #1
0
    def changePassword(self):
        try:
            userID = self.request.session['userID']
            currentACL = ACLManager.loadedACL(userID)

            if ACLManager.currentContextPermission(currentACL, 'listFTPAccounts') == 0:
                return ACLManager.loadErrorJson('changePasswordStatus', 0)

            data = json.loads(self.request.body)
            userName = data['ftpUserName']
            password = data['passwordByPass']

            admin = Administrator.objects.get(pk=userID)
            ftp = Users.objects.get(user=userName)

            if currentACL['admin'] == 1:
                pass
            elif ftp.domain.admin != admin:
                return ACLManager.loadErrorJson()

            FTPUtilities.changeFTPPassword(userName, password)

            data_ret = {'status': 1, 'changePasswordStatus': 1, 'error_message': "None"}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
        except BaseException, msg:
            data_ret = {'status': 0, 'changePasswordStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
Beispiel #2
0
    def submitFTPDelete(self):
        try:
            userID = self.request.session['userID']
            currentACL = ACLManager.loadedACL(userID)

            if ACLManager.currentContextPermission(currentACL, 'deleteFTPAccount') == 0:
                return ACLManager.loadErrorJson('deleteStatus', 0)

            data = json.loads(self.request.body)
            ftpUserName = data['ftpUsername']

            admin = Administrator.objects.get(pk=userID)
            ftp = Users.objects.get(user=ftpUserName)

            if ftp.domain.admin != admin:
                return ACLManager.loadErrorJson()

            FTPUtilities.submitFTPDeletion(ftpUserName)

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

        except BaseException, msg:
            data_ret = {'status': 0, 'deleteStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
Beispiel #3
0
    def listFTPJson(self, virtualHostName):
        try:

            records = FTPUtilities.getFTPRecords(virtualHostName)

            json_data = "["
            checker = 0

            for items in records:
                dic = {
                    'id': items.id,
                    'username': items.user,
                    'path': items.dir
                }

                if checker == 0:
                    json_data = json_data + json.dumps(dic)
                    checker = 1
                else:
                    json_data = json_data + ',' + json.dumps(dic)

            json_data = json_data + ']'
            final_json = json.dumps(json_data)
            print final_json

        except BaseException, msg:
            logger.writeforCLI(str(msg), "Error", stack()[0][3])
            print 0
Beispiel #4
0
    def changeFTPPassword(self, userName, password):
        try:

            result = FTPUtilities.changeFTPPassword(userName, password)
            if result[0] == 1:
                self.printStatus(1, 'None')
            else:
                self.printStatus(1, result[1])
        except BaseException, msg:
            logger.writeforCLI(str(msg), "Error", stack()[0][3])
            self.printStatus(0, str(msg))
Beispiel #5
0
    def deleteFTPAccount(self, userName):
        try:

            result = FTPUtilities.submitFTPDeletion(userName)
            if result[0] == 1:
                self.printStatus(1, 'None')
            else:
                self.printStatus(1, result[1])
        except BaseException, msg:
            logger.writeforCLI(str(msg), "Error", stack()[0][3])
            self.printStatus(0, str(msg))
Beispiel #6
0
    def createFTPAccount(self, domain, userName, password, owner):
        try:

            result = FTPUtilities.submitFTPCreation(domain, userName, password,
                                                    'None', owner)
            if result[0] == 1:
                self.printStatus(1, 'None')
            else:
                self.printStatus(1, result[1])
        except BaseException, msg:
            logger.writeforCLI(str(msg), "Error", stack()[0][3])
            self.printStatus(0, str(msg))
Beispiel #7
0
    def submitFTPCreation(self):
        try:
            userID = self.request.session['userID']
            currentACL = ACLManager.loadedACL(userID)

            if ACLManager.currentContextPermission(currentACL, 'createFTPAccount') == 0:
                return ACLManager.loadErrorJson('creatFTPStatus', 0)

            data = json.loads(self.request.body)
            userName = data['ftpUserName']
            password = data['passwordByPass']

            domainName = data['ftpDomain']

            admin = Administrator.objects.get(pk=userID)

            if ACLManager.checkOwnership(domainName, admin, currentACL) == 1:
                pass
            else:
                return ACLManager.loadError()

            try:
                api = data['api']
            except:
                api = '0'

            admin = Administrator.objects.get(id=userID)

            try:
                path = data['path']
                if len(path) > 0:
                    pass
                else:
                    path = 'None'
            except:
                path = 'None'


            result = FTPUtilities.submitFTPCreation(domainName, userName, password, path, admin.userName, api)

            if result[0] == 1:
                data_ret = {'status': 1, 'creatFTPStatus': 1, 'error_message': 'None'}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)
            else:
                data_ret = {'status': 0, 'creatFTPStatus': 0, 'error_message': result[1]}
                json_data = json.dumps(data_ret)
                return HttpResponse(json_data)

        except BaseException, msg:
            data_ret = {'status': 0, 'creatFTPStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
Beispiel #8
0
    def changePassword(self):
        try:
            userID = self.request.session['userID']
            currentACL = ACLManager.loadedACL(userID)

            if ACLManager.currentContextPermission(currentACL, 'listFTPAccounts') == 0:
                return ACLManager.loadErrorJson('changePasswordStatus', 0)

            data = json.loads(self.request.body)
            userName = data['ftpUserName']
            password = data['ftpPassword']

            FTPUtilities.changeFTPPassword(userName, password)

            data_ret = {'status': 1, 'changePasswordStatus': 1, 'error_message': "None"}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
        except BaseException, msg:
            data_ret = {'status': 0, 'changePasswordStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
Beispiel #9
0
def submitFTPDelete(request):
    try:
        val = request.session['userID']
        admin = Administrator.objects.get(id=val)
        try:
            if request.method == 'POST':

                data = json.loads(request.body)
                ftpUserName = data['ftpUsername']

                ftp = Users.objects.get(user=ftpUserName)

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

                FTPUtilities.submitFTPDeletion(ftpUserName)

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

        except BaseException, msg:
            data_ret = {'deleteStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
    except KeyError, msg:
        data_ret = {'deleteStatus': 0, 'error_message': str(msg)}
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
Beispiel #10
0
    def listFTPPretty(self, virtualHostName):
        try:
            from prettytable import PrettyTable

            records = FTPUtilities.getFTPRecords(virtualHostName)

            table = PrettyTable(['ID', 'User', 'Path'])

            for items in records:
                table.add_row([items.id, items.user, items.dir])
            print table

        except BaseException, msg:
            logger.writeforCLI(str(msg), "Error", stack()[0][3])
            print 0
Beispiel #11
0
def changePassword(request):
    try:
        val = request.session['userID']
        admin = Administrator.objects.get(id=val)
        try:
            if request.method == 'POST':

                data = json.loads(request.body)
                userName = data['ftpUserName']
                password = data['ftpPassword']

                ftp = Users.objects.get(user=userName)

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

                FTPUtilities.changeFTPPassword(userName, password)

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

        except BaseException, msg:
            data_ret = {'changePasswordStatus': 0, 'error_message': str(msg)}
            json_data = json.dumps(data_ret)
            return HttpResponse(json_data)
    except KeyError, msg:
        data_ret = {'changePasswordStatus': 0, 'error_message': str(msg)}
        json_data = json.dumps(data_ret)
        return HttpResponse(json_data)
Beispiel #12
0
def submitFTPCreation(request):
    try:
        val = request.session['userID']
        try:
            if request.method == 'POST':

                data = json.loads(request.body)
                userName = data['ftpUserName']
                password = data['ftpPassword']
                path = data['path']

                path = path.lstrip("/")

                if len(path) > 0:
                    path = "/home/" + data['ftpDomain'] + "/public_html/" + path

                    if not os.path.exists(path):
                        os.makedirs(path)

                    if FTPUtilities.changePermissions("/home/" +
                                                      data['ftpDomain']) == 0:
                        data_ret = {
                            'creatFTPStatus':
                            0,
                            'error_message':
                            "Can not change directory permissions."
                        }
                        json_data = json.dumps(data_ret)
                        return HttpResponse(json_data)

                else:
                    path = "/home/" + data['ftpDomain']
                    if FTPUtilities.changePermissions(path) == 0:
                        data_ret = {
                            'creatFTPStatus':
                            0,
                            'error_message':
                            "Can not change directory permissions."
                        }
                        json_data = json.dumps(data_ret)
                        return HttpResponse(json_data)

                website = Websites.objects.get(domain=data['ftpDomain'])

                hash = hashlib.md5()
                hash.update(password)

                admin = Administrator.objects.get(pk=request.session['userID'])

                userName = admin.userName + "_" + userName

                if website.package.ftpAccounts == 0:
                    user = Users(domain=website,
                                 user=userName,
                                 password=hash.hexdigest(),
                                 uid=2001,
                                 gid=2001,
                                 dir=path,
                                 quotasize=website.package.diskSpace,
                                 status="1",
                                 ulbandwidth=500000,
                                 dlbandwidth=500000,
                                 date=datetime.now())

                    user.save()

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

                elif website.users_set.all().count(
                ) < website.package.ftpAccounts:
                    user = Users(domain=website,
                                 user=userName,
                                 password=hash.hexdigest(),
                                 uid=2001,
                                 gid=2001,
                                 dir=path,
                                 quotasize=website.package.diskSpace,
                                 status="1",
                                 ulbandwidth=500000,
                                 dlbandwidth=500000,
                                 date=datetime.now())

                    user.save()

                    data_ret = {'creatFTPStatus': 1, 'error_message': "None"}
                    json_data = json.dumps(data_ret)
                    return HttpResponse(json_data)
                else:
                    data_ret = {
                        'creatFTPStatus':
                        0,
                        'error_message':
                        "Exceeded maximum amount of FTP accounts allowed for the package."
                    }
                    json_data = json.dumps(data_ret)
                    return HttpResponse(json_data)

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