1212try :
1313 from websiteFunctions .models import Websites
1414 from databases .models import Databases
15+ from backup .models import DBUsers
1516except :
1617 pass
1718import MySQLdb as mysql
@@ -704,13 +705,60 @@ def changePassword(userName, dbPassword):
704705
705706 if connection == 0 :
706707 return 0
707-
708708 cursor .execute ("use mysql" )
709- cursor .execute ("SET PASSWORD FOR '" + userName + "'@'localhost' = PASSWORD('" + dbPassword + "')" )
709+
710+
711+ try :
712+ dbuser = DBUsers .objects .get (user = userName )
713+ cursor .execute ("SET PASSWORD FOR '" + userName + "'@'localhost' = PASSWORD('" + dbPassword + "')" )
714+ except :
715+ userName = mysqlUtilities .fetchuser (userName )
716+ cursor .execute ("SET PASSWORD FOR '" + userName + "'@'localhost' = PASSWORD('" + dbPassword + "')" )
717+
710718 connection .close ()
711719
712720 return 1
713721
714722 except BaseException , msg :
715723 logging .CyberCPLogFileWriter .writeToFile (str (msg ) + "[mysqlUtilities.changePassword]" )
724+ return 0
725+
726+ @staticmethod
727+ def fetchuser (userName ):
728+ try :
729+ connection , cursor = mysqlUtilities .setupConnection ()
730+ cursor .execute ("use mysql" )
731+
732+ database = Databases .objects .get (dbUser = userName )
733+ databaseName = database .dbName
734+ databaseName = databaseName .replace ('_' , '\_' )
735+ query = "select user from db where db = '%s'" % (databaseName )
736+
737+ if connection == 0 :
738+ return 0
739+
740+ cursor .execute (query )
741+ rows = cursor .fetchall ()
742+ counter = 0
743+
744+ for row in rows :
745+ if row [0 ].find ('_' ) > - 1 :
746+ database .dbUser = row [0 ]
747+ database .save ()
748+ try :
749+ connection .close ()
750+ except :
751+ pass
752+ message = 'Detected databaser user is %s for database %s.' % (row [0 ], databaseName )
753+ logging .CyberCPLogFileWriter .writeToFile (message )
754+ return row [0 ]
755+ else :
756+ counter = counter + 1
757+
758+ connection .close ()
759+
760+ return 1
761+
762+ except BaseException , msg :
763+ logging .CyberCPLogFileWriter .writeToFile (str (msg ) + "[mysqlUtilities.fetchuser]" )
716764 return 0
0 commit comments