Skip to content

Commit b760c37

Browse files
author
Daniel
committed
Enhanced WordPress Auto-Login Feature with User Management
- Added datetime module import for date comparisons - Implemented automatic cleanup of autologin users older than 2 days - Added dynamic username generation with random numbers - Updated user creation process to use dynamic usernames - Fixed data handling to use dynamic username in response template
1 parent e13c101 commit b760c37

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

websiteFunctions/website.py

+24-6
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import time
3030
import re
3131
import boto3
32+
import datetime
3233
from plogical.childDomain import ChildDomainManager
3334
from math import ceil
3435
from plogical.alias import AliasManager
@@ -549,16 +550,33 @@ def AutoLogin(self, request=None, userID=None):
549550

550551
if (Status == 1) or ProcessUtilities.decideServer() == ProcessUtilities.ent:
551552

552-
## Get title
553+
# list existing administrators
554+
555+
command = f'sudo -u %s {FinalPHPPath} /usr/bin/wp user list --role=administrator --format=json --path=%s --skip-plugins --skip-themes' % (
556+
WPobj.owner.externalApp, WPobj.path)
557+
result = ProcessUtilities.outputExecutioner(command)
558+
existing_admins = json.loads(result)
559+
560+
# Extract username and registration date
561+
for admin in existing_admins:
562+
username = admin['user_login']
563+
if 'autologin' in username:
564+
reg_date = admin['user_registered']
565+
# if user was registered more than 2 days ago, delete it
566+
if (datetime.datetime.now() - datetime.datetime.strptime(reg_date, '%Y-%m-%d %H:%M:%S')).days > 2:
567+
command = f'sudo -u %s {FinalPHPPath} /usr/bin/wp user delete %s --path=%s --skip-plugins --skip-themes' % (
568+
WPobj.owner.externalApp, username, WPobj.path)
569+
ProcessUtilities.executioner(command)
553570

554571
password = randomPassword.generate_pass(10)
572+
username = 'autologin' + str(randint(10000, 99999))
555573

556-
command = f'sudo -u %s {FinalPHPPath} /usr/bin/wp user create autologin %s --role=administrator --user_pass="%s" --path=%s --skip-plugins --skip-themes' % (
557-
WPobj.owner.externalApp, 'autologin@cloudpages.cloud', password, WPobj.path)
574+
command = f'sudo -u %s {FinalPHPPath} /usr/bin/wp user create %s %s@a.local --role=administrator --user_pass="%s" --path=%s --skip-plugins --skip-themes' % (
575+
WPobj.owner.externalApp, username, username, password, WPobj.path)
558576
ProcessUtilities.executioner(command)
559577

560-
command = f'sudo -u %s {FinalPHPPath} /usr/bin/wp user update autologin --user_pass="%s" --path=%s --skip-plugins --skip-themes' % (
561-
WPobj.owner.externalApp, password, WPobj.path)
578+
command = f'sudo -u %s {FinalPHPPath} /usr/bin/wp user update %s --user_pass="%s" --path=%s --skip-plugins --skip-themes' % (
579+
WPobj.owner.externalApp, username, password, WPobj.path)
562580
ProcessUtilities.executioner(command)
563581

564582
data = {}
@@ -569,7 +587,7 @@ def AutoLogin(self, request=None, userID=None):
569587
FinalURL = WPobj.FinalURL
570588

571589
data['url'] = 'https://%s' % (FinalURL)
572-
data['userName'] = 'autologin'
590+
data['userName'] = username
573591
data['password'] = password
574592

575593
proc = httpProc(request, 'websiteFunctions/AutoLogin.html',

0 commit comments

Comments
 (0)