SmartVault allows more than one user to have access to an account at the same time. In order for this multi user design to work properly, it uses groups to organize users.
Groups can be managed through the path /nodes/grp. Each group has a set of permissions that will apply to all the members within that group.
A user will only have the permissions related to the group or groups they are members of.
You can find below the roles that exists for each kind of group. There are 3 of them: account, vault and employee / client groups.
Account groups
Administratorshave full access to the account, vaults, folders and documents. This includes the ability to add and remove users, upgrade the account and modify the billing information.
Usersall the users for an account; may have access to manage an account, vaults, folders and documents.
Guestsanyone outside of the organization; may have access to view folders and manage documents.
Vault groups
Usersall the users for a vault.
Vault Managerhas the ability to create, delete, and write folders and documents as well as manage access in the vault.
Vault Full Accesshas the ability to create, delete and write documents.
Vault Full Inboxhas full control of the inbox.
Vault Read Onlyonly has the ability to read all the documents in the vault.
Employee / client groups
Usersall the users in a firm.
Firm Managersthis is a group that all individual Vault Manager groups are a member of.
Firm Employeesall the employees in a firm.
Vault Full Inboxgroup of all the users that have full control of the inbox.
Client Contactsall the contacts related to a client.
When browsing groups, you will need to include the path to the node to which you want to navigate to. You can browse to a node, which will show you all the groups in that node, or directly to the group in that node, which will show you all the members in that group for the current node.
Remember you can also use the children query param to discover the groups structure.
?children="numberOfChildren"
Get group
GET/nodes/grp/{path}
Show example
Parameters
pathstring (optional)The path to the account, node, or group that you want to view information of. If you don't specify the path, the returned data will match the RootNodeType structure.
Request
curl --include \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
'https://rest.smartvault.com/nodes/grp/{path}'
// Maven : Add these dependecies to your pom.xml (java6+)
When adding members to a group, you will use a PUT request to /nodes/grp. You will need to include the path to the node to which are modifying the groups of, the group you are adding the user to, and the email of the user you are adding to the group.
Add new member to group
PUT/nodes/grp/{path}/groups/{groupType}/{email}
Parameters
pathstringPath to the account or vault and the group you are adding members to.
groupTypestringGroup you want to insert the user into.
Check group types for all the options depending on the node type.
emailstringEmail address of the user you want to add to the group.
Dim request =TryCast(System.Net.WebRequest.Create("https://rest.smartvault.com/nodes/grp/{path}/groups/{groupType}/{userEmail}"),System.Net.HttpWebRequest)
request.Method="PUT"
request.ContentType="application/json"
request.Accept="application/json"
request.ContentLength=0
Dim responseContent AsString
Using response =TryCast(request.GetResponse(),System.Net.HttpWebResponse)
Using reader =NewSystem.IO.StreamReader(response.GetResponseStream())
responseContent = reader.ReadToEnd()
EndUsing
EndUsing
import groovyx.net.http.RESTClient
importstatic groovyx.net.http.ContentType.JSON
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
@Grab(group ='org.codehaus.groovy.modules.http-builder',module='http-builder', version ='0.5.0')