Difference between revisions of "User Module"
Jump to navigation
Jump to search
m (Text replacement - "syntaxhighlight" to "pre") |
|||
(54 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | This [[Module Library|XQuery Module]] contains functions for creating and administering database users. The [[User Management]] article | + | This [[Module Library|XQuery Module]] contains functions for creating and administering database users. The [[User Management]] article provides more information on database users and permissions. |
=Conventions= | =Conventions= | ||
− | All functions in this module | + | All functions and errors in this module are assigned to the <code><nowiki>http://basex.org/modules/user</nowiki></code> namespace, which is statically bound to the {{Code|user}} prefix.<br/> |
− | = | + | =Read Operations= |
+ | |||
+ | ==user:current== | ||
+ | |||
+ | {| width='100%' | ||
+ | |- valign="top" | ||
+ | | width='120' | '''Signature''' | ||
+ | |<pre>user:current() as xs:string</pre> | ||
+ | |- valign="top" | ||
+ | | '''Summary''' | ||
+ | |Returns the name of the currently logged-in user. | ||
+ | |- valign="top" | ||
+ | | '''Examples''' | ||
+ | | | ||
+ | * If the GUI or the standalone mode is used, {{Code|user:current()}} always returns {{Code|admin}}. | ||
+ | |} | ||
==user:list== | ==user:list== | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width='120' | ''' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>user:list() as xs:string*</pre> |
− | |- | + | |- valign="top" |
| '''Summary''' | | '''Summary''' | ||
− | |Returns the names of all registered users. | + | |Returns the names of all registered users who are visible to the current user. |
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
− | * {{Code|user:list()}} | + | * After a fresh installation, {{Code|user:list()}} will only return {{Code|admin}}. |
|} | |} | ||
Line 25: | Line 40: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width='120' | ''' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>user:list-details( |
− | |- | + | $name as xs:string := () |
+ | ) as element(user)*</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
− | |Returns an element sequence, containing all registered users | + | |Returns an element sequence, containing all registered users who are visible to the current user.<br/>In addition to the {{Command|SHOW USERS}} command, encoded password strings and database permissions will be output. A user {{Code|$name}} can be specified to filter the results in advance. |
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
− | * | + | * After a fresh installation, {{Code|user:list-details()}} returns output similar to the following one: |
− | <pre | + | <pre lang="xml"> |
<user name="admin" permission="admin"> | <user name="admin" permission="admin"> | ||
<password algorithm="digest"> | <password algorithm="digest"> | ||
Line 46: | Line 63: | ||
</user> | </user> | ||
</pre> | </pre> | ||
+ | |- valign="top" | ||
+ | | '''Errors''' | ||
+ | |{{Error|unknown|#Errors}} The specified username is unknown. | ||
|} | |} | ||
Line 51: | Line 71: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width='120' | ''' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>user:exists( |
− | |- | + | $name as xs:string |
+ | ) as xs:boolean</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
|Checks if a user with the specified {{Code|$name}} exists. | |Checks if a user with the specified {{Code|$name}} exists. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
* {{Code|user:exists('admin')}} will always yield true. | * {{Code|user:exists('admin')}} will always yield true. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
− | |{{Error|name|#Errors}} The specified | + | |{{Error|name|#Errors}} The specified username is invalid. |
|} | |} | ||
+ | |||
+ | ==user:check== | ||
+ | |||
+ | {| width='100%' | ||
+ | |- valign="top" | ||
+ | | width='120' | '''Signature''' | ||
+ | |<pre>user:check( | ||
+ | $name as xs:string, | ||
+ | $password as xs:string | ||
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
+ | | '''Summary''' | ||
+ | |Checks if the specified user and password is correct. Raises errors otherwise. | ||
+ | |- valign="top" | ||
+ | | '''Examples''' | ||
+ | | | ||
+ | * {{Code|user:check('admin', '')}} will raise an error if the password of the admin user is a non-empty string. | ||
+ | |- valign="top" | ||
+ | | '''Errors''' | ||
+ | |{{Error|name|#Errors}} The specified username is invalid.<br/>{{Error|unknown|#Errors}} The specified user does not exist.<br/>{{Error|password|#Errors}} The specified password is wrong.<br/> | ||
+ | |} | ||
+ | |||
+ | ==user:info== | ||
+ | |||
+ | {| width='100%' | ||
+ | |- valign="top" | ||
+ | | width='120' | '''Signature''' | ||
+ | |<pre>user:info( | ||
+ | $name as xs:string := () | ||
+ | ) as element(info)</pre> | ||
+ | |- valign="top" | ||
+ | | '''Summary''' | ||
+ | |Returns an <code>info</code> element, which may contain application-specific data. If a user {{Code|$name}} is supplied, a user-specific element is returned. By default, the returned element has no contents. It can be modified via {{Function||user:update-info}}. | ||
+ | |- valign="top" | ||
+ | | '''Examples''' | ||
+ | | | ||
+ | * After a fresh installation, {{Code|user:info()}} returns <code><info/></code>. | ||
+ | |} | ||
+ | |||
+ | =Updates= | ||
+ | |||
+ | '''Important note:''' All functions in this section are ''updating functions'': they will not be immediately executed, but queued on the [[XQuery Update#Pending Update List|Pending Update List]], which will be processed after the actual query has been evaluated. This means that the order in which the functions are specified in the query usually does not reflect the order in which the code will be evaluated. | ||
==user:create== | ==user:create== | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width='120' | ''' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>user:create( |
− | |- | + | $name as xs:string, |
+ | $password as xs:string, | ||
+ | $permissions as xs:string* := (), | ||
+ | $patterns as xs:string* := (), | ||
+ | $info as element(info) := () | ||
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
− | |Creates a new user with the specified {{Code|$name}} | + | |Creates a new user with the specified {{Code|$name}}, {{Code|$password}}, and {{Code|$permissions}}: |
− | |- | + | * Local permissions are granted with non-empty glob {{Code|$patterns}}. |
+ | * An {{Code|$info}} element with application-specific information can be supplied. | ||
+ | * The default global permission (''none'') can be overwritten with an empty pattern or by omitting the last argument. | ||
+ | * Existing users will be overwritten. | ||
+ | |- valign="top" | ||
| '''Examples''' | | '''Examples''' | ||
| | | | ||
* {{Code|user:create('John', '7e$j#!1', 'admin')}} creates a new user 'John' with admin permissions. | * {{Code|user:create('John', '7e$j#!1', 'admin')}} creates a new user 'John' with admin permissions. | ||
− | |- | + | * {{Code|user:create('Jack', 'top!secret', 'read', 'index*')}} creates a new user 'Jack' with read permissions for databases starting with the letters 'index'. |
+ | |- valign="top" | ||
| '''Errors''' | | '''Errors''' | ||
− | |{{Error|name|#Errors}} The specified | + | |{{Error|name|#Errors}} The specified username is invalid.<br/>{{Error|permission|#Errors}} The specified permission is invalid.<br/>{{Error|admin|#Errors}} The "admin" user cannot be modified.<br/>{{Error|logged-in|#Errors}} The specified user is currently logged in.<br/>{{Error|update|#Errors}} The operation can only be performed once per user or database pattern. |
|} | |} | ||
Line 87: | Line 162: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width='120' | ''' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>user:grant( |
− | |- | + | $name as xs:string, |
+ | $permissions as xs:string*, | ||
+ | $patterns as xs:string* := () | ||
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
− | |Grants | + | |Grants global or local {{Code|$permissions}} to a user with the specified {{Code|$name}}. Local permissions are granted with non-empty glob {{Code|$patterns}}. |
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
* {{Code|user:grant('John', 'create')}} grants create permissions to the user 'John'. | * {{Code|user:grant('John', 'create')}} grants create permissions to the user 'John'. | ||
− | * {{Code|user:grant('John', 'write', 'unit*')}} allows John to write to all databases starting with | + | * {{Code|user:grant('John', ('read','write'), ('index*','unit*'))}} allows John to read all databases starting with the letters 'index', and to write to all databases starting with 'unit'. |
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
− | |{{Error|name|#Errors}} The specified | + | |{{Error|unknown|#Errors}} The specified username is unknown.<br/>{{Error|name|#Errors}} The specified username is invalid.<br/>{{Error|pattern|#Errors}} The specified database pattern is invalid.<br/>{{Error|permission|#Errors}} The specified permission is invalid.<br/>{{Error|admin|#Errors}} The "admin" user cannot be modified.<br/>{{Error|local|#Errors}} A local permission can only be 'none', 'read' or 'write'.<br/>{{Error|logged-in|#Errors}} The specified user is currently logged in.<br/>{{Error|update|#Errors}} The operation can only be performed once per user or database pattern. |
|} | |} | ||
Line 106: | Line 185: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width='120' | ''' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>user:drop( |
− | |- | + | $name as xs:string, |
+ | $patterns as xs:string* := () | ||
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
− | |Drops a user with the specified {{Code|$name}}. If | + | |Drops a user with the specified {{Code|$name}}. If non-empty glob {{Code|$patterns}} are specified, only the database patterns will be removed. |
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
* {{Code|user:drop('John')}} drops the user 'John'. | * {{Code|user:drop('John')}} drops the user 'John'. | ||
* {{Code|user:grant('John', 'unit*')}} removes the 'unit*' database pattern. If John accesses any of these database, his global permission will be checked again. | * {{Code|user:grant('John', 'unit*')}} removes the 'unit*' database pattern. If John accesses any of these database, his global permission will be checked again. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
− | |{{Error|name|#Errors}} The specified | + | |{{Error|unknown|#Errors}} The specified username is unknown.<br/>{{Error|name|#Errors}} The specified username is invalid.<br/>{{Error|pattern|#Errors}} The specified database pattern is invalid.<br/>{{Error|admin|#Errors}} The "admin" user cannot be modified.<br/>{{Error|logged-in|#Errors}} The specified user is currently logged in.<br/>{{Error|update|#Errors}} The operation can only be performed once per user or database pattern.<br/>{{Error|conflict|#Errors}} A user cannot be both altered and dropped. |
|} | |} | ||
Line 125: | Line 207: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width='120' | ''' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>user:alter( |
− | |- | + | $name as xs:string, |
+ | $newname as xs:string | ||
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
|Renames a user with the specified {{Code|$name}} to {{Code|$newname}}. | |Renames a user with the specified {{Code|$name}} to {{Code|$newname}}. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
− | * {{Code|user: | + | * {{Code|user:alter('John', 'Jack')}} renames the user 'John' to 'Jack'. |
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
− | |{{Error|name|#Errors}} The specified | + | |{{Error|unknown|#Errors}} The specified username is unknown.<br/>{{Error|name|#Errors}} The specified username is invalid.<br/>{{Error|admin|#Errors}} The "admin" user cannot be modified.<br/>{{Error|logged-in|#Errors}} The specified user is currently logged in.<br/>{{Error|update|#Errors}} The operation can only be performed once per user or database pattern.<br/>{{Error|conflict|#Errors}} A user cannot be both altered and dropped. |
|} | |} | ||
Line 143: | Line 228: | ||
{| width='100%' | {| width='100%' | ||
− | |- | + | |- valign="top" |
− | | width='120' | ''' | + | | width='120' | '''Signature''' |
− | | | + | |<pre>user:password( |
− | |- | + | $name as xs:string, |
+ | $password as xs:string | ||
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
| '''Summary''' | | '''Summary''' | ||
|Changes the {{Code|password}} of a user with the specified {{Code|$name}}. | |Changes the {{Code|password}} of a user with the specified {{Code|$name}}. | ||
− | |- | + | |- valign="top" |
| '''Examples''' | | '''Examples''' | ||
| | | | ||
* {{Code|user:password('John', '')}} assigns user 'John' an empty password string. | * {{Code|user:password('John', '')}} assigns user 'John' an empty password string. | ||
− | |- | + | |- valign="top" |
| '''Errors''' | | '''Errors''' | ||
− | |{{Error|name|#Errors}} The specified | + | |{{Error|unknown|#Errors}} The specified username is unknown.<br/>{{Error|name|#Errors}} The specified username is invalid.<br/>{{Error|update|#Errors}} The operation can only be performed once per user or database pattern. |
+ | |} | ||
+ | |||
+ | ==user:update-info== | ||
+ | |||
+ | {| width='100%' | ||
+ | |- valign="top" | ||
+ | | width='120' | '''Signature''' | ||
+ | |<pre>user:update-info( | ||
+ | $info as element(info), | ||
+ | $name as xs:string := () | ||
+ | ) as empty-sequence()</pre> | ||
+ | |- valign="top" | ||
+ | | '''Summary''' | ||
+ | |Assigns the specified {{Code|$info}} element to the user management or, if {{Code|$name}} is supplied, to a specific user. This function can be used to manage application-specific data (groups, enhanced user info, etc.). | ||
+ | |- valign="top" | ||
+ | | '''Examples''' | ||
+ | | | ||
+ | * Store initial groups information: | ||
+ | <pre lang='xquery'> | ||
+ | user:update-info(element info { | ||
+ | for $group in ('editor', 'author', 'writer') | ||
+ | return element group { $group } | ||
+ | }) | ||
+ | </pre> | ||
+ | * Add a group to a specific user: | ||
+ | <pre lang='xquery'> | ||
+ | user:update-info(<info group='editor'/>, 'john') | ||
+ | </pre> | ||
|} | |} | ||
Line 163: | Line 279: | ||
! width="110"|Code | ! width="110"|Code | ||
|Description | |Description | ||
− | |- | + | |- valign="top" |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|{{Code|admin}} | |{{Code|admin}} | ||
|The "admin" user cannot be modified. | |The "admin" user cannot be modified. | ||
− | |- | + | |- valign="top" |
+ | |{{Code|conflict}} | ||
+ | |A user cannot be both altered and dropped. | ||
+ | |- valign="top" | ||
|{{Code|equal}} | |{{Code|equal}} | ||
|Name of old and new user is equal. | |Name of old and new user is equal. | ||
− | |- | + | |- valign="top" |
|{{Code|local}} | |{{Code|local}} | ||
|A local permission can only be 'none', 'read' or 'write'. | |A local permission can only be 'none', 'read' or 'write'. | ||
− | |- | + | |- valign="top" |
|{{Code|logged-in}} | |{{Code|logged-in}} | ||
|The specified user is currently logged in. | |The specified user is currently logged in. | ||
− | |- | + | |- valign="top" |
+ | |{{Code|name}} | ||
+ | |The specified username is invalid. | ||
+ | |- valign="top" | ||
+ | |{{Code|password}} | ||
+ | |The specified password is wrong. | ||
+ | |- valign="top" | ||
+ | |{{Code|pattern}} | ||
+ | |The specified database name is invalid. | ||
+ | |- valign="top" | ||
+ | |{{Code|permission}} | ||
+ | |The specified permission is invalid. | ||
+ | |- valign="top" | ||
+ | |{{Code|unknown}} | ||
+ | |The specified user does not exist. | ||
+ | |- valign="top" | ||
|{{Code|update}} | |{{Code|update}} | ||
|The operation can only be performed once per user or database pattern. | |The operation can only be performed once per user or database pattern. | ||
− | |||
− | |||
− | |||
|} | |} | ||
=Changelog= | =Changelog= | ||
+ | |||
+ | ;Version 8.6 | ||
+ | * Updated: {{Function||user:create}}, {{Function||user:info}}, {{Function||user:update-info}}: {{Code|$name}} parameter added. | ||
+ | |||
+ | ;Version 8.6 | ||
+ | * Added: {{Function||user:check}}, {{Function||user:info}}, {{Function||user:update-info}}. | ||
+ | * Updated: {{Function||user:list}}, {{Function||user:list-details}}: If called by non-admins, will only return the current user. | ||
+ | |||
+ | ;Version 8.4 | ||
+ | * Updated: {{Function||user:create}}, {{Function||user:grant}}, {{Function||user:drop}}: extended support for database patterns. | ||
+ | |||
+ | ;Version 8.1 | ||
+ | * Added: {{Function||user:current}}. | ||
The Module was introduced with Version 8.0. | The Module was introduced with Version 8.0. | ||
− | |||
− |
Latest revision as of 18:39, 1 December 2023
This XQuery Module contains functions for creating and administering database users. The User Management article provides more information on database users and permissions.
Contents
Conventions[edit]
All functions and errors in this module are assigned to the http://basex.org/modules/user
namespace, which is statically bound to the user
prefix.
Read Operations[edit]
user:current[edit]
Signature | user:current() as xs:string |
Summary | Returns the name of the currently logged-in user. |
Examples |
|
user:list[edit]
Signature | user:list() as xs:string* |
Summary | Returns the names of all registered users who are visible to the current user. |
Examples |
|
user:list-details[edit]
Signature | user:list-details( $name as xs:string := () ) as element(user)* |
Summary | Returns an element sequence, containing all registered users who are visible to the current user. In addition to the SHOW USERS command, encoded password strings and database permissions will be output. A user $name can be specified to filter the results in advance.
|
Examples |
<user name="admin" permission="admin">
<password algorithm="digest">
<hash>304bdfb0383c16f070a897fc1eb25cb4</hash>
</password>
<password algorithm="salted-sha256">
<salt>871602799292195</salt>
<hash>a065ca66fa3d6da5762c227587f1c8258c6dc08ee867e44a605a72da115dcb41</hash>
</password>
</user>
|
Errors | unknown : The specified username is unknown.
|
user:exists[edit]
Signature | user:exists( $name as xs:string ) as xs:boolean |
Summary | Checks if a user with the specified $name exists.
|
Examples |
|
Errors | name : The specified username is invalid.
|
user:check[edit]
Signature | user:check( $name as xs:string, $password as xs:string ) as empty-sequence() |
Summary | Checks if the specified user and password is correct. Raises errors otherwise. |
Examples |
|
Errors | name : The specified username is invalid.unknown : The specified user does not exist.password : The specified password is wrong. |
user:info[edit]
Signature | user:info( $name as xs:string := () ) as element(info) |
Summary | Returns an info element, which may contain application-specific data. If a user $name is supplied, a user-specific element is returned. By default, the returned element has no contents. It can be modified via user:update-info .
|
Examples |
|
Updates[edit]
Important note: All functions in this section are updating functions: they will not be immediately executed, but queued on the Pending Update List, which will be processed after the actual query has been evaluated. This means that the order in which the functions are specified in the query usually does not reflect the order in which the code will be evaluated.
user:create[edit]
Signature | user:create( $name as xs:string, $password as xs:string, $permissions as xs:string* := (), $patterns as xs:string* := (), $info as element(info) := () ) as empty-sequence() |
Summary | Creates a new user with the specified $name , $password , and $permissions :
|
Examples |
|
Errors | name : The specified username is invalid.permission : The specified permission is invalid.admin : The "admin" user cannot be modified.logged-in : The specified user is currently logged in.update : The operation can only be performed once per user or database pattern.
|
user:grant[edit]
Signature | user:grant( $name as xs:string, $permissions as xs:string*, $patterns as xs:string* := () ) as empty-sequence() |
Summary | Grants global or local $permissions to a user with the specified $name . Local permissions are granted with non-empty glob $patterns .
|
Examples |
|
Errors | unknown : The specified username is unknown.name : The specified username is invalid.pattern : The specified database pattern is invalid.permission : The specified permission is invalid.admin : The "admin" user cannot be modified.local : A local permission can only be 'none', 'read' or 'write'.logged-in : The specified user is currently logged in.update : The operation can only be performed once per user or database pattern.
|
user:drop[edit]
Signature | user:drop( $name as xs:string, $patterns as xs:string* := () ) as empty-sequence() |
Summary | Drops a user with the specified $name . If non-empty glob $patterns are specified, only the database patterns will be removed.
|
Examples |
|
Errors | unknown : The specified username is unknown.name : The specified username is invalid.pattern : The specified database pattern is invalid.admin : The "admin" user cannot be modified.logged-in : The specified user is currently logged in.update : The operation can only be performed once per user or database pattern.conflict : A user cannot be both altered and dropped.
|
user:alter[edit]
Signature | user:alter( $name as xs:string, $newname as xs:string ) as empty-sequence() |
Summary | Renames a user with the specified $name to $newname .
|
Examples |
|
Errors | unknown : The specified username is unknown.name : The specified username is invalid.admin : The "admin" user cannot be modified.logged-in : The specified user is currently logged in.update : The operation can only be performed once per user or database pattern.conflict : A user cannot be both altered and dropped.
|
user:password[edit]
Signature | user:password( $name as xs:string, $password as xs:string ) as empty-sequence() |
Summary | Changes the password of a user with the specified $name .
|
Examples |
|
Errors | unknown : The specified username is unknown.name : The specified username is invalid.update : The operation can only be performed once per user or database pattern.
|
user:update-info[edit]
Signature | user:update-info( $info as element(info), $name as xs:string := () ) as empty-sequence() |
Summary | Assigns the specified $info element to the user management or, if $name is supplied, to a specific user. This function can be used to manage application-specific data (groups, enhanced user info, etc.).
|
Examples |
user:update-info(element info {
for $group in ('editor', 'author', 'writer')
return element group { $group }
})
user:update-info(<info group='editor'/>, 'john')
|
Errors[edit]
Code | Description |
---|---|
admin
|
The "admin" user cannot be modified. |
conflict
|
A user cannot be both altered and dropped. |
equal
|
Name of old and new user is equal. |
local
|
A local permission can only be 'none', 'read' or 'write'. |
logged-in
|
The specified user is currently logged in. |
name
|
The specified username is invalid. |
password
|
The specified password is wrong. |
pattern
|
The specified database name is invalid. |
permission
|
The specified permission is invalid. |
unknown
|
The specified user does not exist. |
update
|
The operation can only be performed once per user or database pattern. |
Changelog[edit]
- Version 8.6
- Updated:
user:create
,user:info
,user:update-info
:$name
parameter added.
- Version 8.6
- Added:
user:check
,user:info
,user:update-info
. - Updated:
user:list
,user:list-details
: If called by non-admins, will only return the current user.
- Version 8.4
- Updated:
user:create
,user:grant
,user:drop
: extended support for database patterns.
- Version 8.1
- Added:
user:current
.
The Module was introduced with Version 8.0.