Fix form and other optimization

main
Anthony 2023-11-08 22:02:19 +08:00
parent dbe5bd5c28
commit 3ecd87b90f
1 changed files with 35 additions and 7 deletions

View File

@ -9,6 +9,7 @@ targetNodes:
settings: settings:
sfpform: sfpform:
submitUnchanged: true
fields: fields:
- type: displayfield - type: displayfield
name: infoField name: infoField
@ -18,8 +19,8 @@ settings:
- type: checkbox - type: checkbox
name: allow name: allow
caption: Accept User Creation caption: Accept User Creation
default: ${globals.defaultCheckbox} default: false
required: true required: false
- type: checkbox - type: checkbox
name: enable_ssh name: enable_ssh
caption: Also enable SSH access caption: Also enable SSH access
@ -27,12 +28,36 @@ settings:
required: false required: false
manageUserForm: manageUserForm:
fields: fields:
- type: string - type: list
inputType: text
name: manage_username name: manage_username
caption: Username to Manage caption: Username to Manage
description: "Input the username you want to manage." description: "Input the username you want to manage."
required: true required: true
values: []
onBeforeInit: |
let cmd = 'ls -ld /home/sftpusers/* | awk \'{printf "%s,%s %s %s\\n", substr($9, 17), $6, $7, $8}\''
let resp = api.env.control.ExecCmdByGroup({ envName: "${env.name}", nodeGroup: "cp", commandList: [{ command: cmd }] })
api.marketplace.console.WriteLog("list users cmd resp: " + resp)
if (resp.result == 0) {
let users = resp.responses[0].out.split('\n')
for (let user of users) {
let userData = user.split(',')
let userName = userData[0]
let createdDate = userData[1]
settings.fields[0].values.push({
caption: userName + ' (' + createdDate + ')',
value: userName
})
}
}
api.marketplace.console.WriteLog("users: " + settings.fields[0].values)
return settings
globals: globals:
username: "user${fn.random(10000,99999)}" username: "user${fn.random(10000,99999)}"
@ -85,7 +110,9 @@ actions:
commands: echo $CREATED_PASSWORD commands: echo $CREATED_PASSWORD
- setGlobals: - setGlobals:
password: ${response.out} password: ${response.out}
- return: sftpSuccess - return:
type: info
message: "Connection Details\n\nSFTP Host: ${globals.sftpHost}\n\nPort: ${globals.sftpPort}\n\nLogin Credentials\n\nUsername: ${globals.username}\n\nPassword: ${globals.password}"
change_password: change_password:
- cmd[cp]: - cmd[cp]:
user: root user: root
@ -100,6 +127,7 @@ actions:
user: root user: root
commands: commands:
- userdel ${settings.manage_username} - userdel ${settings.manage_username}
- rm -rf /home/sftpusers/${settings.manage_username}
- echo "User ${settings.manage_username} deleted" >> /home/jelastic/add-sftp-user-addon/logs/script_output.log - echo "User ${settings.manage_username} deleted" >> /home/jelastic/add-sftp-user-addon/logs/script_output.log
- if ("${response.exitStatus}" != "0"): - if ("${response.exitStatus}" != "0"):
@ -149,7 +177,7 @@ buttons:
- settings: manageUserForm - settings: manageUserForm
action: change_password action: change_password
caption: Change Password caption: Change Password
confirmText: "Are you sure you want to change the password for this user?" confirmText: "Are you sure you want to change the password for this user?"
- settings: manageUserForm - settings: manageUserForm
action: delete_user action: delete_user
caption: Delete User caption: Delete User