add wp auto login

This commit is contained in:
Usman Nasir
2022-06-04 15:37:41 +05:00
parent 67383b2c22
commit 9c9a0eb214
4 changed files with 81 additions and 28 deletions

View File

@@ -0,0 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Auto login for {{ url }}</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<span style="display: none" id="userName">{{ userName }}</span>
<span style="display: none" id="password">{{ password }}</span>
<form style="display: none" name="loginform" id="loginform" action="{{ url }}/wp-login.php" method="post">
{% csrf_token %}
<p>
<label for="user_login">Username or Email Address</label>
<input type="text" name="log" id="user_login" class="input" value="" size="20" autocapitalize="off"/>
</p>
<div class="user-pass-wrap">
<label for="user_pass">Password</label>
<div class="wp-pwd">
<input type="password" name="pwd" id="user_pass" class="input password-input" value="" size="20"/>
<button type="button" class="button button-secondary wp-hide-pw hide-if-no-js" data-toggle="0"
aria-label="Show password">
<span class="dashicons dashicons-visibility" aria-hidden="true"></span>
</button>
</div>
</div>
<p class="forgetmenot"><input name="rememberme" type="checkbox" id="rememberme" value="forever"/> <label
for="rememberme">Remember Me</label></p>
<p class="submit">
<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large"
value="Log In"/>
<input type="hidden" name="redirect_to" value="{{ url }}/wp-admin"/>
{# <input type="hidden" name="testcookie" value="1"/>#}
</p>
</form>
<script>
document.getElementById("user_login").value = $("#userName").text();
document.getElementById("user_pass").value = $("#password").text();
document.forms["loginform"].submit();
</script>
</body>
</html>

View File

@@ -82,9 +82,8 @@
</svg>
File Manager
</a>
<a ng-click="autoLogin()"
style="margin-left: 4%"
href="javascript: void(0);">
<a target="_blank" style="margin-left: 4%"
href="{% url 'AutoLogin' %}?id={{ wpsite.id }}">
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
aria-hidden="true" focusable="false" width="1em"

View File

@@ -59,10 +59,9 @@ def WPHome(request):
def AutoLogin(request):
try:
userID = request.session['userID']
WPid = request.GET.get('ID')
wm = WebsiteManager()
return wm.AutoLogin(request, userID, WPid)
return wm.AutoLogin(request, userID)
except KeyError:
return redirect(loadLoginPage)
def ConfigurePlugins(request):

View File

@@ -28,7 +28,7 @@ from plogical.childDomain import ChildDomainManager
from math import ceil
from plogical.alias import AliasManager
from plogical.applicationInstaller import ApplicationInstaller
from plogical import hashPassword
from plogical import hashPassword, randomPassword
from emailMarketing.emACL import emACL
from plogical.processUtilities import ProcessUtilities
from managePHP.phpManager import PHPManager
@@ -143,26 +143,38 @@ class WebsiteManager:
Data, 'createWebsite')
return proc.render()
def AutoLogin(self, request=None, userID=None, WPid=None):
pass
# data = {}
# currentACL = ACLManager.loadedACL(userID)
# WPobj = WPSites.objects.get(pk=WPid)
#
# data['wpsite'] = WPobj
#
# if data['wpsite'].FinalURL.endswith('/'):
# FinalURL = data['wpsite'].FinalURL[:-1]
# else:
# FinalURL = data['wpsite'].FinalURL
#
# data['url'] = 'https://%s' % (FinalURL)
# data['userName'] = 'autologin'
# data['password'] = message
#
# proc = httpProc(request, 'websiteFunctions/WPsiteHome.html',
# Data, 'createWebsite')
# return proc.render()
def AutoLogin(self, request=None, userID=None):
WPid = request.GET.get('id')
WPobj = WPSites.objects.get(pk=WPid)
#php = VirtualHost.getPHPString(self.data['PHPVersion'])
#FinalPHPPath = '/usr/local/lsws/lsphp%s/bin/php' % (php)
## Get title
password = randomPassword.generate_pass(10)
command = 'sudo -u %s wp user create autologin %s --role=administrator --user_pass="%s" --path=%s --skip-plugins --skip-themes' % (WPobj.owner.externalApp, 'autologin@cloudpages.cloud', password, WPobj.path)
ProcessUtilities.executioner(command)
command = 'sudo -u %s wp user update autologin --user_pass="%s" --path=%s --skip-plugins --skip-themes' % (WPobj.owner.externalApp, password, WPobj.path)
ProcessUtilities.executioner(command)
data = {}
if WPobj.FinalURL.endswith('/'):
FinalURL = WPobj.FinalURL[:-1]
else:
FinalURL = WPobj.FinalURL
data['url'] = 'https://%s' % (FinalURL)
data['userName'] = 'autologin'
data['password'] = password
proc = httpProc(request, 'websiteFunctions/AutoLogin.html',
data, 'createWebsite')
return proc.render()