High Performance OPC UA Server SDK
1.1.0.158
|
For more information on the inode backend and usage examples see Inode Backend. More...
Data Structures | |
struct | ua_perm_ctx |
Permission information contained in every node. More... | |
struct | ua_user_ctx |
Representation of a user in the server. More... | |
Macros | |
#define | UA_ATTRREADABLE 0x0001 |
#define | UA_ATTRWRITABLE 0x0002 |
#define | UA_EVENTREADABLE 0x0004 |
#define | UA_EXECUTABLE 0x0008 |
#define | UA_READABLE 0x00040000 |
#define | UA_WRITABLE 0x00080000 |
#define | UA_HISTORYWRITABLE 0x00100000 |
#define | UA_HISTORYREADABLE UA_READABLE |
#define | UA_HISTORYINSERT UA_HISTORYWRITABLE |
#define | UA_HISTORYMODIFY UA_HISTORYWRITABLE |
#define | UA_HISTORYDELETE UA_HISTORYWRITABLE |
#define | UA_NUM_PERM_BITS 5 |
#define | UA_OTHER_ATTRWRITABLE UA_ATTRWRITABLE |
#define | UA_OTHER_WRITABLE UA_WRITABLE |
#define | UA_OTHER_EXECUTABLE UA_EXECUTABLE |
#define | UA_OTHER_HISTORYINSERT UA_HISTORYINSERT |
#define | UA_OTHER_HISTORYMODIFY UA_HISTORYMODIFY |
#define | UA_OTHER_HISTORYDELETE UA_HISTORYDELETE |
#define | UA_OTHER_READABLE UA_READABLE |
#define | UA_OTHER_HISTORYREADABLE UA_HISTORYREADABLE |
#define | UA_OTHER_ATTRREADABLE UA_ATTRREADABLE |
#define | UA_OTHER_EVENTREADABLE UA_EVENTREADABLE |
#define | UA_OTHER_OBSERVATION (UA_OTHER_READABLE | UA_OTHER_HISTORYREADABLE | UA_OTHER_ATTRREADABLE | UA_OTHER_EVENTREADABLE) |
#define | UA_OTHER_OPERATION (UA_OTHER_OBSERVATION | UA_OTHER_WRITABLE | UA_OTHER_EXECUTABLE) |
#define | UA_OTHER_ALL (UA_OTHER_OPERATION | UA_OTHER_ATTRWRITABLE | UA_OTHER_HISTORYINSERT | UA_OTHER_HISTORYMODIFY | UA_OTHER_HISTORYDELETE) |
#define | UA_GROUP_ATTRWRITABLE (UA_OTHER_ATTRWRITABLE << UA_NUM_PERM_BITS) |
#define | UA_GROUP_WRITABLE (UA_OTHER_WRITABLE << UA_NUM_PERM_BITS) |
#define | UA_GROUP_EXECUTABLE (UA_OTHER_EXECUTABLE << UA_NUM_PERM_BITS) |
#define | UA_GROUP_HISTORYINSERT (UA_OTHER_HISTORYINSERT << UA_NUM_PERM_BITS) |
#define | UA_GROUP_HISTORYMODIFY (UA_OTHER_HISTORYMODIFY << UA_NUM_PERM_BITS) |
#define | UA_GROUP_HISTORYDELETE (UA_OTHER_HISTORYDELETE << UA_NUM_PERM_BITS) |
#define | UA_GROUP_READABLE (UA_OTHER_READABLE << UA_NUM_PERM_BITS) |
#define | UA_GROUP_HISTORYREADABLE (UA_OTHER_HISTORYREADABLE << UA_NUM_PERM_BITS) |
#define | UA_GROUP_ATTRREADABLE (UA_OTHER_ATTRREADABLE << UA_NUM_PERM_BITS) |
#define | UA_GROUP_EVENTREADABLE (UA_OTHER_EVENTREADABLE << UA_NUM_PERM_BITS) |
#define | UA_GROUP_OBSERVATION (UA_GROUP_READABLE | UA_GROUP_HISTORYREADABLE | UA_GROUP_ATTRREADABLE | UA_GROUP_EVENTREADABLE) |
#define | UA_GROUP_OPERATION (UA_GROUP_OBSERVATION | UA_GROUP_WRITABLE | UA_GROUP_EXECUTABLE) |
#define | UA_GROUP_ALL (UA_GROUP_OPERATION | UA_GROUP_ATTRWRITABLE | UA_GROUP_HISTORYINSERT | UA_GROUP_HISTORYMODIFY | UA_GROUP_HISTORYDELETE) |
#define | UA_USER_ATTRWRITABLE (UA_GROUP_ATTRWRITABLE << UA_NUM_PERM_BITS) |
#define | UA_USER_WRITABLE (UA_GROUP_WRITABLE << UA_NUM_PERM_BITS) |
#define | UA_USER_EXECUTABLE (UA_GROUP_EXECUTABLE << UA_NUM_PERM_BITS) |
#define | UA_USER_HISTORYINSERT (UA_GROUP_HISTORYINSERT << UA_NUM_PERM_BITS) |
#define | UA_USER_HISTORYMODIFY (UA_GROUP_HISTORYMODIFY << UA_NUM_PERM_BITS) |
#define | UA_USER_HISTORYDELETE (UA_GROUP_HISTORYDELETE << UA_NUM_PERM_BITS) |
#define | UA_USER_READABLE (UA_GROUP_READABLE << UA_NUM_PERM_BITS) |
#define | UA_USER_HISTORYREADABLE (UA_GROUP_HISTORYREADABLE << UA_NUM_PERM_BITS) |
#define | UA_USER_ATTRREADABLE (UA_GROUP_ATTRREADABLE << UA_NUM_PERM_BITS) |
#define | UA_USER_EVENTREADABLE (UA_GROUP_EVENTREADABLE << UA_NUM_PERM_BITS) |
#define | UA_USER_OBSERVATION (UA_USER_READABLE | UA_USER_HISTORYREADABLE | UA_USER_ATTRREADABLE | UA_USER_EVENTREADABLE) |
#define | UA_USER_OPERATION (UA_USER_OBSERVATION | UA_USER_WRITABLE | UA_USER_EXECUTABLE) |
#define | UA_USER_ALL (UA_USER_OPERATION | UA_USER_ATTRWRITABLE | UA_USER_HISTORYINSERT | UA_USER_HISTORYMODIFY | UA_USER_HISTORYDELETE) |
#define | UA_ALL_ENCRYPTION_REQUIRED (0x1 << (3 * UA_NUM_PERM_BITS)) |
#define | UA_AUTHORIZATION_MAX_GROUPS_PER_USER 5 |
Maximum number of groups per user. More... | |
Typedefs | |
typedef uint8_t | ua_uid_t |
Datatype for the user id, can be increased to support more users. | |
typedef uint8_t | ua_gid_t |
Datatype for the group id, can be increased to support more groups. | |
Functions | |
int | ua_inode_set_perm (ua_node_t node, ua_uid_t uid, ua_gid_t gid, uint32_t permissions) |
Set permission for a single node. More... | |
int | ua_inode_set_default_perm (ua_uid_t uid, ua_gid_t gid, uint32_t permissions) |
Set new default permission for all newly created nodes. More... | |
int | ua_inode_add_user (const char *username, ua_uid_t id) |
Add a new user with username and id . More... | |
int | ua_inode_add_group (const char *groupname, ua_gid_t id) |
Add a new group with groupname and id . More... | |
int | ua_inode_add_user_to_group (const char *username, const char *groupname) |
Add a user to a group. More... | |
int | ua_inode_get_uid (const char *username, ua_uid_t *uid) |
Get the userid for a username. More... | |
int | ua_inode_get_gid (const char *groupname, ua_gid_t *gid) |
Get the groupid for a groupname. More... | |
For more information on the inode backend and usage examples see Inode Backend.
#define UA_AUTHORIZATION_MAX_GROUPS_PER_USER 5 |
Maximum number of groups per user.
With 5 groups and uid and gid being 1 byte the structure is 8 byte, which fits nicely into memory.
int ua_inode_add_group | ( | const char * | groupname, |
ua_gid_t | id | ||
) |
Add a new group with groupname
and id
.
Returns an error if the groupname already exists.
int ua_inode_add_user | ( | const char * | username, |
ua_uid_t | id | ||
) |
Add a new user with username
and id
.
Returns an error if the username already exists.
int ua_inode_add_user_to_group | ( | const char * | username, |
const char * | groupname | ||
) |
Add a user to a group.
Returns an error if either the user or the group doesn't exists. Detail: Technically the group is added to the user.
int ua_inode_get_gid | ( | const char * | groupname, |
ua_gid_t * | gid | ||
) |
Get the groupid for a groupname.
groupname | Name of group to get id from. |
gid | Pointer to group id where the id will be written to. |
int ua_inode_get_uid | ( | const char * | username, |
ua_uid_t * | uid | ||
) |
Get the userid for a username.
username | Name of user to get id from. |
uid | Pointer to user id where the id will be written to. |
Set new default permission for all newly created nodes.
uid | User id for newly created nodes. |
gid | Group id for newly created nodes. |
permissions | User, group and other permissions for newly created nodes. Multiple permissions can be OR'd together. |
Set permission for a single node.
node | Handle of the node to set permissions. |
uid | User id for the node. |
gid | Group id for the node. |
permissions | User, group and other permissions for the node. Multiple permissions can be OR'd together. |