Compare commits

...

2 Commits

Author SHA1 Message Date
Anthony be6ce918b2 Changes added in README 2023-11-08 22:03:34 +08:00
Anthony 3ecd87b90f Fix form and other optimization 2023-11-08 22:02:19 +08:00
2 changed files with 41 additions and 7 deletions

View File

@ -0,0 +1,6 @@
Version 0.2 Changelogs:
- Added a submitUnchanged property to allow submitting the 'Add User' form even if the settings haven't been changed.
- Changed required: true to required: false for the 'Accept User Creation' checkbox
- Changed the return type to info to prevent storing the previous settings.
- Added a user listing to the manageUserform.
- Implemented the removal of a user's directory upon user deletion to maintain an accurate user listing.

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"):