mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-07 22:06:05 +01:00
bug fix: fix misconfigured database users in cPanel importer
This commit is contained in:
@@ -104,18 +104,32 @@ class backupUtilities:
|
|||||||
for items in databases:
|
for items in databases:
|
||||||
try:
|
try:
|
||||||
dbuser = DBUsers.objects.get(user=items.dbUser)
|
dbuser = DBUsers.objects.get(user=items.dbUser)
|
||||||
|
userToTry = items.dbUser
|
||||||
except:
|
except:
|
||||||
dbusers = DBUsers.objects.all().filter(user=items.dbUser)
|
dbusers = DBUsers.objects.all().filter(user=items.dbUser)
|
||||||
|
userToTry = items.dbUser
|
||||||
for it in dbusers:
|
for it in dbusers:
|
||||||
dbuser = it
|
dbuser = it
|
||||||
break
|
break
|
||||||
|
|
||||||
|
userToTry = mysqlUtilities.mysqlUtilities.fetchuser(items.dbUser)
|
||||||
|
|
||||||
|
try:
|
||||||
|
dbuser = DBUsers.objects.get(user=userToTry)
|
||||||
|
except:
|
||||||
|
dbusers = DBUsers.objects.all().filter(user=userToTry)
|
||||||
|
for it in dbusers:
|
||||||
|
dbuser = it
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
databaseXML = Element('database')
|
databaseXML = Element('database')
|
||||||
|
|
||||||
child = SubElement(databaseXML, 'dbName')
|
child = SubElement(databaseXML, 'dbName')
|
||||||
child.text = items.dbName
|
child.text = items.dbName
|
||||||
child = SubElement(databaseXML, 'dbUser')
|
child = SubElement(databaseXML, 'dbUser')
|
||||||
child.text = items.dbUser
|
child.text = userToTry
|
||||||
child = SubElement(databaseXML, 'password')
|
child = SubElement(databaseXML, 'password')
|
||||||
child.text = dbuser.password
|
child.text = dbuser.password
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import shlex
|
|||||||
try:
|
try:
|
||||||
from websiteFunctions.models import Websites
|
from websiteFunctions.models import Websites
|
||||||
from databases.models import Databases
|
from databases.models import Databases
|
||||||
|
from backup.models import DBUsers
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
import MySQLdb as mysql
|
import MySQLdb as mysql
|
||||||
@@ -704,13 +705,60 @@ password=%s
|
|||||||
|
|
||||||
if connection == 0:
|
if connection == 0:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
cursor.execute("use mysql")
|
cursor.execute("use mysql")
|
||||||
cursor.execute("SET PASSWORD FOR '" + userName + "'@'localhost' = PASSWORD('" + dbPassword + "')")
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
dbuser = DBUsers.objects.get(user=userName)
|
||||||
|
cursor.execute("SET PASSWORD FOR '" + userName + "'@'localhost' = PASSWORD('" + dbPassword + "')")
|
||||||
|
except:
|
||||||
|
userName = mysqlUtilities.fetchuser(userName)
|
||||||
|
cursor.execute("SET PASSWORD FOR '" + userName + "'@'localhost' = PASSWORD('" + dbPassword + "')")
|
||||||
|
|
||||||
connection.close()
|
connection.close()
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
except BaseException, msg:
|
except BaseException, msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[mysqlUtilities.changePassword]")
|
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[mysqlUtilities.changePassword]")
|
||||||
|
return 0
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def fetchuser(userName):
|
||||||
|
try:
|
||||||
|
connection, cursor = mysqlUtilities.setupConnection()
|
||||||
|
cursor.execute("use mysql")
|
||||||
|
|
||||||
|
database = Databases.objects.get(dbUser=userName)
|
||||||
|
databaseName = database.dbName
|
||||||
|
databaseName = databaseName.replace('_', '\_')
|
||||||
|
query = "select user from db where db = '%s'" % (databaseName)
|
||||||
|
|
||||||
|
if connection == 0:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
cursor.execute(query)
|
||||||
|
rows = cursor.fetchall()
|
||||||
|
counter = 0
|
||||||
|
|
||||||
|
for row in rows:
|
||||||
|
if row[0].find('_') > -1:
|
||||||
|
database.dbUser = row[0]
|
||||||
|
database.save()
|
||||||
|
try:
|
||||||
|
connection.close()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
message = 'Detected databaser user is %s for database %s.' % (row[0], databaseName)
|
||||||
|
logging.CyberCPLogFileWriter.writeToFile(message)
|
||||||
|
return row[0]
|
||||||
|
else:
|
||||||
|
counter = counter + 1
|
||||||
|
|
||||||
|
connection.close()
|
||||||
|
|
||||||
|
return 1
|
||||||
|
|
||||||
|
except BaseException, msg:
|
||||||
|
logging.CyberCPLogFileWriter.writeToFile(str(msg) + "[mysqlUtilities.fetchuser]")
|
||||||
return 0
|
return 0
|
||||||
Reference in New Issue
Block a user