Initial commit
commit
05145b7b5a
|
@ -0,0 +1,2 @@
|
||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
|
@ -0,0 +1,3 @@
|
||||||
|
[Click to login](${response.out})
|
||||||
|
|
||||||
|
*(Link will expire in 15 minutes)*
|
|
@ -0,0 +1,78 @@
|
||||||
|
type: update
|
||||||
|
name: Instant Login
|
||||||
|
description: Login to your WordPress site as an administrator with a single click.
|
||||||
|
|
||||||
|
targetNodes:
|
||||||
|
nodeGroup: cp
|
||||||
|
|
||||||
|
onInstall:
|
||||||
|
cmd [cp]:
|
||||||
|
- cd /var/www/webroot/ROOT/
|
||||||
|
- wp package install aaemnnosttv/wp-cli-login-command
|
||||||
|
- wp login install --yes --activate
|
||||||
|
|
||||||
|
setGlobals:
|
||||||
|
userToLoginAs: 1
|
||||||
|
|
||||||
|
actions:
|
||||||
|
instant_login:
|
||||||
|
#log: ${placeholders}
|
||||||
|
|
||||||
|
cmd [cp]:
|
||||||
|
- cd /var/www/webroot/ROOT/
|
||||||
|
- wp login create ${globals.userToLoginAs} --url-only
|
||||||
|
#- user=$(wp user list --field=user_login --format=csv)
|
||||||
|
#- wp login create $user --url-only
|
||||||
|
return:
|
||||||
|
type: success
|
||||||
|
message: |
|
||||||
|
[Click to login](${response.out})
|
||||||
|
*(Link will expire in 15 minutes)*
|
||||||
|
|
||||||
|
save_config:
|
||||||
|
#empty method to allow userToLoginAs to save
|
||||||
|
#log: ${placeholders}
|
||||||
|
# lookup user that was entered
|
||||||
|
cmd [cp]:
|
||||||
|
- cd /var/www/webroot/ROOT/
|
||||||
|
- user=$(wp user get ${settings.userToLoginAs} --field=ID)
|
||||||
|
# see if number (user ID) returned or not. Return 1 if yes.
|
||||||
|
- re='^[0-9]+$'
|
||||||
|
- if ! [[ $user =~ $re ]]; then echo 0; else echo 1; fi
|
||||||
|
|
||||||
|
#check if the user was found
|
||||||
|
# returns ID if so
|
||||||
|
# returns 'Error: Invalid user ID, email or login: '24342''
|
||||||
|
if (response.out == 0):
|
||||||
|
script: |
|
||||||
|
return {"result": "error", "message": "User not found. Try again."}
|
||||||
|
else:
|
||||||
|
- setGlobals:
|
||||||
|
userToLoginAs: ${settings.userToLoginAs}
|
||||||
|
- script: |
|
||||||
|
return {"result": "success", "message": "User saved!"}
|
||||||
|
|
||||||
|
|
||||||
|
settings:
|
||||||
|
configure:
|
||||||
|
fields:
|
||||||
|
- type: string
|
||||||
|
name: userToLoginAs
|
||||||
|
caption: User to login as
|
||||||
|
placeholder: Enter user ID, user email, or user login
|
||||||
|
|
||||||
|
buttons:
|
||||||
|
- caption: Instant Login
|
||||||
|
loadingText: Generating login...
|
||||||
|
confirmText: Generate a login link for the configured user? This will log you out of any existing sessions.
|
||||||
|
action: instant_login
|
||||||
|
- caption: Configure
|
||||||
|
action: save_config
|
||||||
|
settings: configure
|
||||||
|
|
||||||
|
# problem - only saves the user name/id/email on initial creation. Since adding custom code to save_config, it will not update with new user value after saving again
|
||||||
|
|
||||||
|
# tried to use setGlobals but doesn't seem like that works any better
|
||||||
|
|
||||||
|
|
||||||
|
#SOLUTION: Combine these two options into one button - the button shows the input form, filled out with the username that was previously used. Then upon saving, it checks to see if that's a real user and if so it generates the login for that user.
|
|
@ -0,0 +1,31 @@
|
||||||
|
jpsType: update
|
||||||
|
jpsVersion: '1.7.2'
|
||||||
|
id: wp-instant-login
|
||||||
|
name: Instant Login
|
||||||
|
description: Login to your WordPress site as an administrator with a single click.
|
||||||
|
baseUrl: https://deploy.mightybox.site/instant-login/
|
||||||
|
|
||||||
|
targetNodes:
|
||||||
|
nodeGroup: cp
|
||||||
|
|
||||||
|
onInstall:
|
||||||
|
cmd [nodes.cp[0]]:
|
||||||
|
- cd /var/www/webroot/ROOT
|
||||||
|
- touch newfile.txt
|
||||||
|
- wp package install aaemnnosttv/wp-cli-login-command
|
||||||
|
- wp login install --yes --activate
|
||||||
|
|
||||||
|
actions:
|
||||||
|
instant_login:
|
||||||
|
cmd [cp]:
|
||||||
|
- cd /var/www/webroot/ROOT
|
||||||
|
- user=$(wp user list --fields=user_login --format=csv | sed -n '2 p')
|
||||||
|
- wp login create $user --url-only
|
||||||
|
return:
|
||||||
|
type: success
|
||||||
|
message: Yes!
|
||||||
|
|
||||||
|
buttons:
|
||||||
|
- caption: Instant Login
|
||||||
|
loadingText: Generating login...
|
||||||
|
action: instant_login
|
|
@ -0,0 +1,100 @@
|
||||||
|
type: update
|
||||||
|
name: One-Click Admin
|
||||||
|
|
||||||
|
targetNodes:
|
||||||
|
nodeGroup: cp
|
||||||
|
|
||||||
|
onInstall:
|
||||||
|
cmd [nodes.cp[0]]:
|
||||||
|
- cd /var/www/webroot/ROOT/wp-content
|
||||||
|
- mkdir mu-plugins -p
|
||||||
|
- cd mu-plugins
|
||||||
|
- wget https://raw.githubusercontent.com/aaemnnosttv/wp-cli-login-command/master/plugin/wp-cli-login-server.php
|
||||||
|
- cd /var/www/webroot/ROOT
|
||||||
|
- wp package install aaemnnosttv/wp-cli-login-command
|
||||||
|
|
||||||
|
|
||||||
|
actions:
|
||||||
|
instantlogin:
|
||||||
|
cmd [cp]:
|
||||||
|
- cd /var/www/webroot/ROOT
|
||||||
|
- wp user list --fields=user_login,user_email --format=json
|
||||||
|
choose_admin_login:
|
||||||
|
cmd [cp]:
|
||||||
|
- cd /var/www/webroot/ROOT
|
||||||
|
- wp user list --fields=user_login,user_email --format=json
|
||||||
|
|
||||||
|
buttons:
|
||||||
|
- confirmText: Custom confirm text
|
||||||
|
loadingText: Load text while waiting
|
||||||
|
action: instantlogin
|
||||||
|
caption: Instant Login
|
||||||
|
successText: Configuration saved successfully!
|
||||||
|
- confirmText: Custom confirm text
|
||||||
|
loadingText: Load text while waiting
|
||||||
|
action: choose_admin_login
|
||||||
|
caption: Choose Admin
|
||||||
|
successText: Configuration saved successfully!
|
||||||
|
|
||||||
|
|
||||||
|
# onUninstall - remove mu-plugin
|
||||||
|
|
||||||
|
|
||||||
|
# to make a button open a prompt and choose the admin users use a settings page:
|
||||||
|
# settings:
|
||||||
|
# main:
|
||||||
|
# fields:
|
||||||
|
# - type: text
|
||||||
|
# caption: Main form
|
||||||
|
# config:
|
||||||
|
# fields:
|
||||||
|
# - type: text
|
||||||
|
# caption: Custom form from button action
|
||||||
|
#
|
||||||
|
# buttons:
|
||||||
|
# - settings: config
|
||||||
|
# action: customAction
|
||||||
|
# caption: Configure
|
||||||
|
# submitButtonText: Button Text
|
||||||
|
# logsPath: "/var/lib/jelastic/keys/111"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# old style - copy directly to mu-plugins
|
||||||
|
|
||||||
|
- cd /var/www/webroot/ROOT/wp-content
|
||||||
|
- mkdir mu-plugins -p
|
||||||
|
- cd mu-plugins
|
||||||
|
- wget https://raw.githubusercontent.com/aaemnnosttv/wp-cli-login-command/master/plugin/wp-cli-login-server.php
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# type: update
|
||||||
|
# name: Custom buttons
|
||||||
|
#
|
||||||
|
# targetNodes:
|
||||||
|
# nodeGroup: bl
|
||||||
|
#
|
||||||
|
# actions:
|
||||||
|
# - "..."
|
||||||
|
#
|
||||||
|
# buttons:
|
||||||
|
# - confirmText: Custom confirm text
|
||||||
|
# loadingText: Load text while waiting
|
||||||
|
# action: "{String}"
|
||||||
|
# caption: Configure
|
||||||
|
# successText: Configuration saved successfully!
|
||||||
|
# href: http://example.com/
|
||||||
|
#
|
||||||
|
# type: install
|
||||||
|
# name: Addon installation
|
||||||
|
#
|
||||||
|
# onInstall:
|
||||||
|
# installAddon:
|
||||||
|
# id: wp-automatic-login
|
||||||
|
#
|
||||||
|
# addons:
|
||||||
|
# - id: wp-automatic-login
|
||||||
|
# name: Automatic WP Login
|
||||||
|
# onInstall:
|
||||||
|
# createFile [cp]: /var/log/test.log
|
|
@ -0,0 +1,47 @@
|
||||||
|
type: update
|
||||||
|
name: Load admins
|
||||||
|
description: Testing grounds for dynamically loading admins from the CP[0] node.
|
||||||
|
|
||||||
|
targetNodes:
|
||||||
|
nodeGroup: cp
|
||||||
|
|
||||||
|
settings:
|
||||||
|
configure:
|
||||||
|
fields:
|
||||||
|
- type: string
|
||||||
|
name: userToLoginAs
|
||||||
|
caption: User to login as
|
||||||
|
placeholder: Enter user ID, user email, or user login
|
||||||
|
default: 1
|
||||||
|
|
||||||
|
actions:
|
||||||
|
save_config:
|
||||||
|
#empty method to allow userToLoginAs to save
|
||||||
|
|
||||||
|
# lookup user that was entered
|
||||||
|
cmd [cp]:
|
||||||
|
- cd /var/www/webroot/ROOT/
|
||||||
|
- user=$(wp user get ${settings.userToLoginAs} --field=ID)
|
||||||
|
# see if number (user ID) returned or not. Return 1 if yes.
|
||||||
|
- re='^[0-9]+$'
|
||||||
|
- if ! [[ $user =~ $re ]]; then echo 0; else echo 1; fi
|
||||||
|
|
||||||
|
#check if the user was found
|
||||||
|
# returns ID if so
|
||||||
|
# returns 'Error: Invalid user ID, email or login: '24342''
|
||||||
|
if (response.out == 0):
|
||||||
|
script: |
|
||||||
|
return {"result": "error", "message": "User not found. Try again."}
|
||||||
|
else:
|
||||||
|
script: |
|
||||||
|
return {"result": "success", "message": "User saved!"}
|
||||||
|
|
||||||
|
|
||||||
|
buttons:
|
||||||
|
- caption: Configure
|
||||||
|
settings: configure
|
||||||
|
action: save_config
|
||||||
|
|
||||||
|
|
||||||
|
# can't seem to get the field to save unless it's input during admin
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
type: update
|
||||||
|
name: Load admins
|
||||||
|
description: Testing grounds for dynamically loading admins from the CP[0] node.
|
||||||
|
|
||||||
|
targetNodes:
|
||||||
|
nodeGroup: cp
|
||||||
|
|
||||||
|
globals:
|
||||||
|
admin_users: denny
|
||||||
|
|
||||||
|
OnInstall:
|
||||||
|
settings:
|
||||||
|
userToLoginAs: ${settings.jelastic_email}
|
||||||
|
|
||||||
|
|
||||||
|
settings:
|
||||||
|
main:
|
||||||
|
fields:
|
||||||
|
- type: string
|
||||||
|
name: userToLoginAs
|
||||||
|
caption: User to login as
|
||||||
|
default: ${settings.userToLoginAs}
|
||||||
|
|
||||||
|
|
||||||
|
buttons:
|
||||||
|
- caption: Configure
|
||||||
|
settings: main
|
||||||
|
|
||||||
|
# settings:
|
||||||
|
# main:
|
||||||
|
# fields:
|
||||||
|
# - type: list
|
||||||
|
# caption: List
|
||||||
|
# values:
|
||||||
|
# one: ${fn.password}
|
||||||
|
# required: true
|
||||||
|
# forceSelection: true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-------
|
||||||
|
# returns user login without header
|
||||||
|
wp user list --field=user_login --format=csv
|
||||||
|
|
||||||
|
can we save a value between addon loads/opens?
|
||||||
|
Yes - Lets encrypt does it. But how? It always shows the same value for me.
|
||||||
|
|
||||||
|
can I just have plain text input field to type email, ID, username you want to login as?
|
||||||
|
|
||||||
|
can I create a static placeholder with manually-defined values and even get that to load in "values" for listbox instead of a manaully-defined list inline?
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# how to populate list with values:
|
||||||
|
|
||||||
|
onBeforeInit: |
|
||||||
|
var zones = toNative(java.time.ZoneId.getAvailableZoneIds()).sort();
|
||||||
|
var serverTimeZone = toNative(java.time.ZoneId.systemDefault());
|
||||||
|
var values = {};
|
||||||
|
for (var i = 0, n = zones.length; i < n; i++) {
|
||||||
|
values[zones[i]] = zones[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
result: 0,
|
||||||
|
settings: {
|
||||||
|
fields: [{
|
||||||
|
name: "timeZone",
|
||||||
|
caption: "TimeZone Name",
|
||||||
|
type: "list",
|
||||||
|
required: true,
|
||||||
|
editable: true,
|
||||||
|
"default": serverTimeZone,
|
||||||
|
values: values
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue