mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-12 00:06:09 +01:00
regenerate credentials upon failed login
This commit is contained in:
@@ -216,9 +216,50 @@ def fetchDetailsPHPMYAdmin(request):
|
||||
admin = Administrator.objects.get(id = userID)
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
username = request.GET.get('username')
|
||||
token = request.GET.get('token')
|
||||
|
||||
if token == 'FailedLogin':
|
||||
keySavePath = '/home/cyberpanel/phpmyadmin_%s' % (admin.userName)
|
||||
GlobalUserDB.objects.get(username=admin.userName).delete()
|
||||
|
||||
command = 'rm -f %s' % (keySavePath)
|
||||
ProcessUtilities.executioner(command)
|
||||
|
||||
key = Fernet.generate_key()
|
||||
|
||||
writeToFile = open(keySavePath, 'w')
|
||||
writeToFile.write(key.decode())
|
||||
writeToFile.close()
|
||||
|
||||
command = 'chown root:root %s' % (keySavePath)
|
||||
ProcessUtilities.executioner(command)
|
||||
|
||||
command = 'chmod 600 %s' % (keySavePath)
|
||||
ProcessUtilities.executioner(command)
|
||||
|
||||
##
|
||||
|
||||
password = randomPassword.generate_pass()
|
||||
token = randomPassword.generate_pass()
|
||||
f = Fernet(key)
|
||||
GlobalUserDB(username=admin.userName, password=f.encrypt(password.encode('utf-8')).decode(),
|
||||
token=token).save()
|
||||
|
||||
sites = ACLManager.findWebsiteObjects(currentACL, userID)
|
||||
createUser = 1
|
||||
|
||||
for site in sites:
|
||||
for db in site.databases_set.all():
|
||||
mysqlUtilities.addUserToDB(db.dbName, admin.userName, password, createUser)
|
||||
createUser = 0
|
||||
|
||||
returnURL = '/phpmyadmin/phpmyadminsignin.php?username=%s&password=%s' % (admin.userName, password)
|
||||
return redirect(returnURL)
|
||||
|
||||
|
||||
username = request.GET.get('username')
|
||||
|
||||
|
||||
if username != admin.userName:
|
||||
return redirect(loadLoginPage)
|
||||
|
||||
|
||||
@@ -930,6 +930,11 @@ skip-name-resolve
|
||||
return 0
|
||||
|
||||
if createUser:
|
||||
try:
|
||||
cursor.execute(
|
||||
"CREATE USER '" + user + "'@'%s' IDENTIFIED BY '" % (mysqlUtilities.LOCALHOST) + password + "'")
|
||||
except:
|
||||
cursor.execute("DROP USER '%s'@'%s'" % (user, mysqlUtilities.LOCALHOST))
|
||||
cursor.execute(
|
||||
"CREATE USER '" + user + "'@'%s' IDENTIFIED BY '" % (mysqlUtilities.LOCALHOST) + password + "'")
|
||||
|
||||
|
||||
@@ -44,4 +44,4 @@ else if(isset($_GET['password'])){
|
||||
header('Location: /phpmyadmin/index.php?server=' . PMA_SIGNON_INDEX);
|
||||
}
|
||||
|
||||
echo 'Failed login';
|
||||
$url = "/dataBases/fetchDetailsPHPMYAdmin?token=FailedLogin";
|
||||
Reference in New Issue
Block a user