Endpoint: /sites/{siteId}/user-templates/{userTemplateid}

NOTE: Available as of EFT 8.1.0

Returns a user settings template defined on an EFT site and allows the ability to get, update, and delete the custom command.

  • GET

  • PATCH

  • DELETE

Method & URL

GET https://[server URL]:[port]/admin/v2/sites/{siteId}/user-templates/{userTemplateid}

GET Body Sample

Copy
### Get User Settings Template ### Need to obtain templates first
# @name userTemplates
GET https://{{host}}/admin/v2/sites/{{Siteid}}/user-templates HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}
###
@userTemplateid = {{userTemplates.response.body.$.data[3].id}}
#Update the array to obtain the desired user template

### GET User Template by Template ID ###
#
GET https://{{host}}/admin/v2/sites/{{Siteid}}/user-templates/{{userTemplateid}} HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}
###

GET Response Body Sample

Copy
{ "data": { "attributes": { "as2": { "inbound": { "enabled": true }, "outbound": { "enabled": true } }, 
"changePassword": { "enabled": "inherit", "value": { "changeAdminProvidedPasswordUponFirstUse": "inherit", 
"passwordExpiration": { "enabled": true, "value": { "maxAgeDays": 90, "emailUpon": true, "remindPrior": { 
"enabled": false, "value": { "daysBefore": 5, "emailUser": true } } } } } }, "connectionTimeout": { 
"enabled": true, "value": { "maxSec": 600 } }, "connectionsFromSameIpLimit": { 
"enabled": false, "value": { "maxNumber": 0 } }, "downloadSizeLimit": { "enabled": false, "value": { 
"maxKBytes": 0 } }, "downloadsPerSessionLimit": { "enabled": false, "value": { "maxNumber": 0 } }, 
"enabled": false, "ftp": { "enabled": true, "value": { "enableFxp": "inherit", "enableNoop": "inherit", 
"enableComb": "yes", "enableXcrc": "yes", "enableZlib": true, "banner": { "message": "Login OK. Proceed.", 
"usage": "replaceDefault" } } }, "ftps": { "enabled": true }, "hasHomeFolderAsRoot": true, "homeFolder": { 
"enabled": true, "value": { "path": "/" } }, "http": { "enableHttp": true, "enableHttps": true, 
"enableWtc": true, "enableShareFolder": true, "enableSendMessage": true }, "invalidLoginLimit": { 
"enabled": "inherit", "value": { "maxCount": 90, "periodMin": 5, "action": "lock", "actionDurationMin": 30 } }, 
"ipAccessLimit": { "enabled": false, "value": { "rules": [], "defaultRule": "allowAccess" } }, 
"name": "GSB Template 2", "passwordComplexity": { "enabled": "inherit", "value": { 
"minLength": 8, "characterCategories": { "enabled": true, "value": { "characterCount": 4, 
"upperCaseRequired": true, "lowerCaseRequired": true, "numericRequired": true, 
"nonAlphaNumericRequired": false, "non7bitAsciiRequired": false } }, "usernameCharLimit": { 
"enabled": true, "value": { "minDisallowed": 3 } }, "repeatingCharLimit": { 
"enabled": true, "value": { "minDisallowed": 3 } }, "forbiddenDictionary": { 
"enabled": true, "value": { "dictionaryFilePath": "", "noBackwardsWord": false } } } }, 
"passwordHistory": { "enabled": "inherit", "value": { "historyDepth": 4 } }, "sftp": { 
"enabled": true, "value": { "authenticationType": "password" } }, "ssl": { 
"authenticationType": "password" }, "totalConnectionsLimit": { "enabled": false, "value": { 
"maxNumber": 0 } }, "transferSpeedLimit": { "enabled": false, "value": { "maxKbps": 0 } }, 
"uploadSizeLimit": { "enabled": false, "value": { "maxKBytes": 0 } }, "uploadsPerSessionLimit": { 
"enabled": false, "value": { "maxNumber": 0 } } }, 
"id": "b3c3d712-2c40-446f-ae9c-d99b742658ab", "links": { "self": 
"/admin/v2/sites/c7d3ecfe-a100-4bcd-b830-01a10524c048/user-templates/b3c3d712-2c40-446f-ae9c-d99b742658ab" 
}, "type": "userTemplate" } }

GET PowerShell Sample

Copy
########################################
#GET Specific User Settings Template

###
#Get Specific User Settings Templates
Write-Output "Get Specific User Settings Template"
Write-Output "-----"
$userTemplates = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/user-templates" 
-Method 'GET' -Headers $authHeader
Write-Output $serverAdminDetails | ConvertTo-Json -Depth 10
foreach ($userTemplates in $userTemplates.id)
{
    Write-Output ("User Template found:  $($userTemplates.id): $($userTemplates.attributes.name)")
}
$userTemplateID = $userTemplates.data[3].id

###
#Get Specific User Template
Write-Output "Get User Template for: "  $userTemplateID " with name: " 
$userTemplate.data.attributes.name
Write-Output "-----"
$userTemplate = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/user-templates/$userTemplateID" 
-Method 'GET' -Headers $authHeader
Write-Output $userTemplate | ConvertTo-Json -Depth 10 

Method & URL

PATCH https://[server URL]:[port]/admin/v2/sites/{siteId}/user-templates/{userTemplateid}

PATCH Body Sample

Copy
### Get User Settings Template ### Need to obtain templates first
# @name userTemplates
GET https://{{host}}/admin/v2/sites/{{Siteid}}/user-templates HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}
###
@userTemplateid = {{userTemplates.response.body.$.data[3].id}}
#Update the array to obtain the desired user template

### PATCH User Template by Template ID
PATCH https://{{host}}/admin/v2/sites/{{Siteid}}/user-templates/
{{userTemplateid}} HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}

{
    "data": {
        "type": "userTemplate",
        "attributes": {
            "enabled": false,
            "homeFolder": {
                "enabled": true,
                "value": {
                    "path": ""
                }
            }
        }
    }
}

PATCH Response Body Sample

Copy
{ "data": { "attributes": { "as2": { "inbound": { "enabled": true }, "outbound": { "enabled": true } }, 
"changePassword": { "enabled": "inherit", "value": { "changeAdminProvidedPasswordUponFirstUse": "inherit", 
"passwordExpiration": { "enabled": true, "value": { "maxAgeDays": 90, "emailUpon": true, "remindPrior": { 
"enabled": false, "value": { "daysBefore": 5, "emailUser": true } } } } } }, "connectionTimeout": { 
"enabled": true, "value": { "maxSec": 600 } }, "connectionsFromSameIpLimit": { "enabled": false, 
"value": { "maxNumber": 0 } }, "downloadSizeLimit": { "enabled": false, "value": { "maxKBytes": 0 } }, 
"downloadsPerSessionLimit": { "enabled": false, "value": { "maxNumber": 0 } }, "enabled": false, "ftp": { 
"enabled": true, "value": { "enableFxp": "inherit", "enableNoop": "inherit", "enableComb": "yes", 
"enableXcrc": "yes", "enableZlib": true, "banner": { "message": "Login OK. Proceed.", "usage": 
"replaceDefault" } } }, "ftps": { "enabled": true }, "hasHomeFolderAsRoot": true, "homeFolder": { 
"enabled": true, "value": { "path": "/" } }, "http": { "enableHttp": true, "enableHttps": true, 
"enableWtc": true, "enableShareFolder": true, "enableSendMessage": true }, "invalidLoginLimit": { 
"enabled": "inherit", "value": { "maxCount": 90, "periodMin": 5, "action": "lock", 
"actionDurationMin": 30 } }, "ipAccessLimit": { "enabled": false, "value": { "rules": [], 
"defaultRule": "allowAccess" } }, "name": "GSB Template 2", "passwordComplexity": { 
"enabled": "inherit", "value": { "minLength": 8, "characterCategories": { "enabled": true, "value": { 
"characterCount": 4, "upperCaseRequired": true, "lowerCaseRequired": true, "numericRequired": true, 
"nonAlphaNumericRequired": false, "non7bitAsciiRequired": false } }, "usernameCharLimit": { 
"enabled": true, "value": { "minDisallowed": 3 } }, "repeatingCharLimit": { "enabled": true, "value": { 
"minDisallowed": 3 } }, "forbiddenDictionary": { "enabled": true, "value": { "dictionaryFilePath": "", 
"noBackwardsWord": false } } } }, "passwordHistory": { "enabled": "inherit", "value": { 
"historyDepth": 4 } }, "sftp": { "enabled": true, "value": { "authenticationType": "password" } }, 
"ssl": { "authenticationType": "password" }, "totalConnectionsLimit": { "enabled": false, "value": { 
"maxNumber": 0 } }, "transferSpeedLimit": { "enabled": false, "value": { "maxKbps": 0 } }, 
"uploadSizeLimit": { "enabled": false, "value": { "maxKBytes": 0 } }, "uploadsPerSessionLimit": { 
"enabled": false, "value": { "maxNumber": 0 } } }, "id": "b3c3d712-2c40-446f-ae9c-d99b742658ab", 
"links": { "self": 
"/admin/v2/sites/c7d3ecfe-a100-4bcd-b830-01a10524c048/user-templates/b3c3d712-2c40-446f-ae9c-d99b742658ab" }, 
"type": "userTemplate" } }

PATCH PowerShell Sample

Copy
#####################################################
##PATCH (Update) specific User Settings Template
###
#Get Specific User Settings Templates
Write-Output "Get Specific User Settings Template"
Write-Output "-----"
$userTemplates = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/user-templates" -Method 'GET' -Headers $authHeader
Write-Output $serverAdminDetails | ConvertTo-Json -Depth 10
foreach ($userTemplates in $userTemplates.id)
{
    Write-Output ("User Template found:  $($userTemplates.id): $($userTemplates.attributes.name)")
}
$userTemplateID = $userTemplates.data[3].id

###
#Get Specific User Template
Write-Output "Get User Template for: "  $userTemplateID " with name: " $userTemplate.data.attributes.name
Write-Output "-----"
$userTemplate = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/user-templates/$userTemplateID" 
-Method 'GET' -Headers $authHeader
Write-Output $userTemplate | ConvertTo-Json -Depth 10


###
##Patch Specific User Settings Template
Write-Output "User Settings Template Patch (update)"
Write-Output "-----"
$update = 
'{
    "data":{
        "type": "userTemplate",
          "attributes": {
            "enabled": false,
            "homeFolder": {
                "enabled": true,
                "value": {
                    "path": ""
                }
            }
        }
    }
}'
$update = $update | ConvertFrom-Json
$update = $update | ConvertTo-Json -Depth 10
$patchReturn = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/user-templates/$userTemplateID" 
-Method 'PATCH' -Headers $authHeader -Body $update 

Method & URL

DELETE https://[server URL]:[port]/admin/v2/sites/{siteId}/user-templates/{userTemplateid}

DELETE Body Sample

Copy
###
#Delete Specific User Settings Template
DELETE https://{{host}}/admin/v2/sites/{{Siteid}}/user-templates/
{{userTemplateid}} HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}
#

DELETE Response Body Sample

Copy
HTTP/1.1 204 No Content Date: Thu, 21 Jul 2022 13:38:16 GMT Content-Length: 0 
Cache-Control: no-cache, no-store, must-revalidate Expires: -1 
X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block 
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' data:; 
Referrer-Policy: no-referrer

DELETE PowerShell Sample

Copy
##########################################################
#Delete User Settings Template

#Get Specific User Settings Templates
Write-Output "Get Specific User Settings Template"
Write-Output "-----"
$userTemplates = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/user-templates" 
-Method 'GET' -Headers $authHeader
Write-Output $serverAdminDetails | ConvertTo-Json -Depth 10
foreach ($userTemplates in $userTemplates.id)
{
    Write-Output ("User Template found:  $($userTemplates.id): $($userTemplates.attributes.name)")
}
$userTemplateID = $userTemplates.data[3].id

###
#Get Specific User Template
Write-Output "Get User Template for: "  $userTemplateID " with name: " $userTemplate.data.attributes.name
Write-Output "-----"
$userTemplate = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/user-templates/$userTemplateID" 
-Method 'GET' -Headers $authHeader
Write-Output $userTemplate | ConvertTo-Json -Depth 10

#Delete Request
Write-Output "Deleting User Settings Template: "  $userTemplateID
Write-Output "-----"
$commandList = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/user-templates/$userTemplateID" 
-Method 'DELETE' -Headers $authHeader
Write-Output $commandList | ConvertTo-Json -Depth 10