Skip to main content
tip

This page contains documentation for the User class and its subclasses:

User

Overview​

Core User API implementation.

Supported methods​

  • Getters :
    • Retrieve groups information.
    • Retrieve user information.
    • Get the status of a join task.
    • Get the password policy.
    • Get the password expiry.
    • Get the username policy.
  • Setters :
    • Create a new user.
    • Modify a user.
    • Delete a user.
    • Affect or disaffect groups to a user.
    • Set the password policy.
    • Set the password expiry.
  • Actions :
    • Confirm password/session.

Methods​

user_list​

Retrieve groups information.

Internal API​

SYNO.Core.User

Parameters​

offset int
The offset of the groups to retrieve. Defaults to 0.

limit int
The maximum number of groups to retrieve. Defaults to -1.

sort_by str
Sort by a specific field. Defaults to "name".

sort_direction str
The sort direction. Defaults to "ASC" else "DESC".

additional list[str]
Additional fields to retrieve. Defaults to []. All fields known are: ["description","email","expired","cannot_chg_passwd","passwd_never_expire","password_last_change", "groups", "2fa_status"].

Returns​

dict[str, object]
A dictionary containing the groups information.

Example return​

Click to expand
{
"data": {
"offset": 0,
"total": 5,
"users": [
{
"description": "System default user",
"email": "",
"expired": "now",
"name": "admin",
"passwd_never_expire": true
},
{
"description": "Guest",
"email": "",
"expired": "now",
"name": "guest",
"passwd_never_expire": true
},
{
"description": "",
"email": "",
"expired": "normal",
"name": "test_api",
"passwd_never_expire": true
},
{
"description": "test description",
"email": "testemail@test.com",
"expired": "normal",
"name": "test_user",
"passwd_never_expire": true
}
]
},
"success": true
}

user_get​

Retrieve user information.

Internal API​

SYNO.Core.User

Parameters​

name str
The name of the user.

additional list[str]
Additional fields to retrieve. Defaults to []. All fields known are: ["description","email","expired","cannot_chg_passwd","passwd_never_expire","password_last_change","is_password_pending"].

Returns​

dict[str, object]
A dictionary containing the user information.

Example return​

Click to expand
{
"api": "SYNO.Core.User",
"data": {
"users": [
{
"cannot_chg_passwd": false,
"description": "",
"email": "",
"expired": "normal",
"is_password_pending": false,
"name": "test_api",
"passwd_never_expire": true,
"password_last_change": 19789,
"uid": 1027
}
]
},
"method": "get",
"success": true,
"version": 1
}

user_create​

Create a new user.

Internal API​

SYNO.Core.User

Parameters​

name str
The name of the user.

password str
The password of the user.

description str
The description of the user. Defaults to "".

email str
The email of the user. Defaults to "".

expire str
The expiration date of the user. Defaults to "never".

cannot_chg_passwd bool
Whether the password can be changed. Defaults to False.

passwd_never_expire bool
Whether the password should never expire. Defaults to True.

notify_by_email bool
Whether to notify by email. Defaults to False.

send_password bool
Whether to send the password. Defaults to False.

Returns​

dict[str, object]
A dictionary containing the user information.

Example return​

Click to expand
{
"data":
{
"name":"toto",
"uid": 1030
},
"success": true
}

user_set​

Modify a user.

Internal API​

SYNO.Core.User

Parameters​

name str
The name of the actual user.

new_name str
The new name of the user.

password str
The password of the user. Defaults to "".

description str
The description of the user. Defaults to "".

email str
The email of the user. Defaults to "".

expire str
The expiration date of the user. Defaults to "never".

cannot_chg_passwd bool
Whether the password can be changed. Defaults to False.

passwd_never_expire bool
Whether the password should never expire. Defaults to True.

notify_by_email bool
Whether to notify by email. Defaults to False.

send_password bool
Whether to send the password. Defaults to False.

Returns​

dict[str, object]
A dictionary containing the user information.

Example return​

Click to expand
{
"data":{
"name": "test_user2",
"password_last_change": 20106,
"uid": 1028
},
"success": true
}

user_delete​

Delete a user.

Internal API​

SYNO.Core.User

Parameters​

name str
The name of the user to delete.

Returns​

dict[str, object]
A dictionary containing the user information.

Example return​

Click to expand
{
"data": {
"name": "toto",
"uid": 1030
},
"success": true
}

user_group_join​

Affect or disaffect groups to a user.

tip

This request is asynchronous and will return a task id to check the status of the join task. Use affect_groups_status func to check the status of the task.

Internal API​

SYNO.Core.User.Group

Parameters​

name str
The name of the user.

join_groups list[str]
The names of the groups to join.

leave_groups list[str]
The names of the groups to leave.

Returns​

dict[str, object]
A dictionary containing the task id to check the status of the join task. Use affect_groups_status func to check the status of the task.

Example return​

Click to expand
{
"api": "SYNO.Core.User.Group",
"data": {
"task_id": "@administrators/groupbatch1737238746C6723E33"
},
"method": "join",
"success": true,
"version": 1
}

user_group_join_status​

Get the status of a join task.

Internal API​

SYNO.Core.User.Group

Parameters​

task_id str
The task id of the join task.

Returns​

dict[str, object]
A dictionary containing the status of the join task.

Example return​

Click to expand
{
"data": {
"auto_remove": false,
"data": {
"name": "test_user2",
"pid": 18126,
"progress": 1,
"total": 1,
"uid": 1028
},
"finish": false,
"info": {
"api": "SYNO.Core.User.Group",
"group": "admin",
"method": "join",
"prefix": "groupbatch",
"version": 1
},
"success": true
},
"success": true
}

user_password_policy_get​

Get the password policy.

Internal API​

SYNO.Core.User.PasswordPolicy

Returns​

dict[str, object]
A dictionary containing the password policy information.

Example return​

Click to expand
{
"api": "SYNO.Core.User.PasswordPolicy",
"data": {
"enable_reset_passwd_by_email": false,
"password_must_change": false,
"strong_password": {
"exclude_username": true,
"history_num": 0,
"included_numeric_char": true,
"included_special_char": false,
"min_length": 8,
"min_length_enable": true,
"mixed_case": true
}
},
"method": "get",
"success": true,
"version": 1
}

user_password_policy_set​

Set the password policy.

Internal API​

SYNO.Core.User.PasswordPolicy

Parameters​

enable_reset_passwd_by_email bool
Defaults to False.

password_must_change bool
Defaults to False.

exclude_username bool
Defaults to True.

included_numeric_char bool
Defaults to True.

included_special_char bool
Defaults to False.

min_length int
Defaults to 8.

min_length_enable bool
Defaults to True.

mixed_case bool
Defaults to True.

exclude_common_password bool
Defaults to False.

exclude_history bool
Defaults to False.

Returns​

dict[str, object]
A dictionary indicating the success of the operation.

Example return​

Click to expand
{
"api": "SYNO.Core.User.PasswordPolicy",
"data": {},
"method": "set",
"success": true,
"version": 1
}

user_password_expiry_get​

Get the password expiry.

Internal API​

SYNO.Core.User.PasswordExpiry

Returns​

dict[str, object]
A dictionary containing the password expiry information.

Example return​

Click to expand
{
"api": "SYNO.Core.User.PasswordExpiry",
"data": {
"allow_reset_after_expired": true,
"enable_login_prompt": false,
"enable_mail_notification": false,
"mail_notification_days": "",
"min_age_enable": false,
"password_expire_enable": false
},
"method": "get",
"success": true,
"version": 1
}

user_password_expiry_set​

Set the password expiry.

Internal API​

SYNO.Core.User.PasswordExpiry

Parameters​

password_expire_enable bool
Enable password expiry. Defaults to False.

max_age int
Maximum time before password expiry. Defaults to 30.

min_age_enable bool
Enable minimum time before password expiry. Defaults to False.

min_age int
Minimum time before password expiry. Defaults to 1.

enable_login_prompt bool
Enable login prompt. Defaults to False.

login_prompt_days int
Days before login prompt. Defaults to 1.

allow_reset_after_expired bool
Allow reset after password expiry. Defaults to True.

enable_mail_notification bool
Enable mail notification. Defaults to False.

never_expired_list list[str]
List of users that should never expire.

Returns​

dict[str, object]
A dictionary indicating the success of the operation.

Example return​

Click to expand
{
"api": "SYNO.Core.User.PasswordExpiry",
"method": "set",
"success": true,
"version": 1
}

password_confirm​

Confirm password/session to ensure the given password matches the auth of the current session.

note

This is needed by some APIs as a confirmation method, for example, when creating/modifying a scheduled task with root permissions, seldom needed by end users.

Internal API​

SYNO.Core.User.PasswordConfirm

Parameters​

password str
The password with which the session was initiated.

Returns​

dict[str, object]
A dictionary containing a SynoConfirmPWToken, or an error message.

Example return​

Click to expand
{
"data": {
"SynoConfirmPWToken": "xxxxx"
},
"success": true
}

user_username_policy_get​

Get the username policy (list of usernames that are not usable).

Internal API​

SYNO.Core.User.UsernamePolicy

Returns​

dict[str, object]
A dictionary containing the username policy information.

Example return​

Click to expand
{
"api": "SYNO.Core.User.UsernamePolicy",
"data": ["root", "rootuser", "rootusr", "admin", "administrator", "adm", "adminuser", "adminusr", "user",…],
"method": "get",
"success": true,
"version": 1
}

PersonMailAccount​

Overview​

Synology Personal Mail Account API wrapper.

Methods​

mail_contacts_list​

List snapshot usage entries.

Internal API​

SYNO.PersonMailAccount.Contacts

Returns​

dict
API response from SYNO.PersonMailAccount.Contacts.


mail_clean​

Clean/reset the remote credential verifier.

Internal API​

SYNO.PersonMailAccount.Mail

Returns​

dict
API response from SYNO.PersonMailAccount.Mail.


mail_send​

Send an email from the person mail account.

Internal API​

SYNO.PersonMailAccount.Mail

Returns​

dict
API response from SYNO.PersonMailAccount.Mail.


mail_status​

Get snapshot usage tracking status.

Internal API​

SYNO.PersonMailAccount.Mail

Returns​

dict
API response from SYNO.PersonMailAccount.Mail.


mail_stop​

Stop snapshot usage tracking.

Internal API​

SYNO.PersonMailAccount.Mail

Returns​

dict
API response from SYNO.PersonMailAccount.Mail.


mail_oauth_gmail​

Configure Gmail as the person mail account.

Internal API​

SYNO.PersonMailAccount.Mail.Oauth

Returns​

dict
API response from SYNO.PersonMailAccount.Mail.Oauth.


mail_oauth_outlook​

Configure Outlook as the person mail account.

Internal API​

SYNO.PersonMailAccount.Mail.Oauth

Returns​

dict
API response from SYNO.PersonMailAccount.Mail.Oauth.