--- Cannot embed stylesheet: [Errno 2] No such file or directory: '../../../aros.css' --->
ULONG AccAddGroup(
struct AuthorityInfo * authority,
struct GroupInfo * group,
struct Entity * server );
Create a group on the Accounts Server.
authority - Non-NULL AuthorityInfo containing NUL-terminated
ai_UserName and clear-text ai_Password of the authorizer.
group - Non-NULL read/write proposed GroupInfo record.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, replacing *group with the assigned record. On error, the caller's record is unchanged. ACCERROR_NOAUTHORITY means failed authorizer authentication; ACCERROR_NOPRIVS means insufficient rights or a read-only backend. ACCERROR_GROUPEXISTS means an unavailable name; ACCERROR_NOFREEGROUPS means the server cannot assign another ID. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server requires AdminGroups or AdminAll. It assigns a new group ID and uses the authorizer's user ID as administrator, ignoring those proposed fields. Flags are copied. Group flags are not stored in the AROS backend's group file. An empty name requests an available NewGroup, NewGroup2, ... name. The new group starts with no explicit members. No local GroupInfo is allocated for the caller. Requires an authenticated authorizer and writable backend; a read-only usergroup.library backend reports ACCERROR_NOPRIVS. Success confirms the server's in-memory change, not durable storage: later file-save errors are not reported to the caller. A transport error does not prove that no change occurred. Query the server before retrying a destructive request. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccAddMember(
struct AuthorityInfo * authority,
struct GroupInfo * group,
struct UserInfo * user,
struct Entity * server );
Add a user to a group's explicit membership list.
authority - Non-NULL AuthorityInfo containing NUL-terminated
ai_UserName and clear-text ai_Password of the authorizer.
group - Non-NULL readable complete current GroupInfo record.
user - Non-NULL readable complete current UserInfo record.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success. Neither caller record is modified. ACCERROR_NOAUTHORITY means failed authorizer authentication; ACCERROR_NOPRIVS means insufficient rights or a read-only backend. ENVOYERR_UNKNOWNGROUP or ENVOYERR_UNKNOWNUSER means a stale/missing record. ACCERROR_USEREXISTS means membership already existed. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server permits AdminAll or the group's recorded admin and matches all fields of both records. Membership is keyed by user ID; users sharing an ID share this membership. This operation does not change the user's primary group field. Requires an authenticated authorizer and writable backend; a read-only usergroup.library backend reports ACCERROR_NOPRIVS. Success confirms the server's in-memory change, not durable storage: later file-save errors are not reported to the caller. A transport error does not prove that no change occurred. Query the server before retrying a destructive request. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccAddUser(
struct AuthorityInfo * authority,
struct UserInfo * user,
STRPTR password,
struct Entity * server );
Create a user on the Accounts Server.
authority - Non-NULL AuthorityInfo containing NUL-terminated
ai_UserName and clear-text ai_Password of the authorizer.
user - Non-NULL read/write proposed UserInfo record.
password - NUL-terminated initial clear-text password, or NULL
for no initial password.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, replacing *user with the assigned record. On error, the caller's record is unchanged. ACCERROR_NOAUTHORITY means failed authorizer authentication; ACCERROR_NOPRIVS means insufficient rights or a read-only backend. ACCERROR_USEREXISTS means an unavailable name; ACCERROR_NOFREEUSERS means the server cannot assign another ID. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server requires AdminAll. It assigns the user ID rather than using the proposed ID. An empty name requests an available NewUser, NewUser2, ... name. The proposed primary group is retained. A password is stored only when NeedsPassword is set and password is nonempty. Other privilege flags are derived from server policy; the returned record is authoritative. No local UserInfo storage is allocated for the caller. Requires an authenticated authorizer and writable backend; a read-only usergroup.library backend reports ACCERROR_NOPRIVS. Success confirms the server's in-memory change, not durable storage: later file-save errors are not reported to the caller. A transport error does not prove that no change occurred. Query the server before retrying a destructive request. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccDeleteGroup(
struct AuthorityInfo * authority,
struct GroupInfo * group,
struct Entity * server );
Delete a group and its explicit membership list.
authority - Non-NULL AuthorityInfo containing NUL-terminated
ai_UserName and clear-text ai_Password of the authorizer.
group - Non-NULL readable complete current GroupInfo record.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success. The caller's record is not modified or freed. ACCERROR_NOAUTHORITY means failed authorizer authentication; ACCERROR_NOPRIVS means insufficient rights or a read-only backend. ENVOYERR_UNKNOWNGROUP means a stale/missing target. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server permits AdminAll or the group's recorded admin and requires the complete target record to match. Deleting the group does not delete its users or rewrite their primary group IDs. Any surviving local copy of the group record is stale after success. Requires an authenticated authorizer and writable backend; a read-only usergroup.library backend reports ACCERROR_NOPRIVS. Success confirms the server's in-memory change, not durable storage: later file-save errors are not reported to the caller. A transport error does not prove that no change occurred. Query the server before retrying a destructive request. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccDeleteUser(
struct AuthorityInfo * authority,
struct UserInfo * user,
struct Entity * server );
Delete a user account and its stored group memberships.
authority - Non-NULL AuthorityInfo containing NUL-terminated
ai_UserName and clear-text ai_Password of the authorizer.
user - Non-NULL readable complete current UserInfo record.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success. The caller's record is not modified or freed. ACCERROR_NOAUTHORITY means failed authorizer authentication; ACCERROR_NOPRIVS means insufficient rights or a read-only backend. ENVOYERR_UNKNOWNUSER means a stale/missing target. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server requires AdminAll, matches all fields of the target and refuses deletion of protected root IDs. The backend removes memberships and the user record; it does not remove home-directory contents or update a group's administrator ID. Any surviving local copy of the record is stale after success. Requires an authenticated authorizer and writable backend; a read-only usergroup.library backend reports ACCERROR_NOPRIVS. Success confirms the server's in-memory change, not durable storage: later file-save errors are not reported to the caller. A transport error does not prove that no change occurred. Query the server before retrying a destructive request. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccIDToGroup(
UWORD groupID,
struct GroupInfo * group,
struct Entity * server );
Look up a group record by numeric ID.
groupID - 16-bit numeric group ID.
group - Non-NULL writable struct GroupInfo.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, with *group replaced by the returned record. The AROS server returns ENVOYERR_UNKNOWNGROUP when no match exists. On any error, *group is unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server returns the first record with this ID in its name-ordered list. IDs can be shared by multiple records in the backend; an ID lookup is therefore not a unique-name lookup. This is a lookup, not authentication. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccIDToUser(
UWORD userID,
struct UserInfo * user,
struct Entity * server );
Look up a user record by numeric ID.
userID - 16-bit numeric user ID.
user - Non-NULL writable struct UserInfo.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, with *user replaced by the returned record. The AROS server returns ENVOYERR_UNKNOWNUSER when no match exists. On any error, *user is unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server returns the first record with this ID in its name-ordered list. IDs can be shared by multiple records in the backend; an ID lookup is therefore not a unique-name lookup. This is a lookup, not authentication. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccMemberOf(
struct GroupInfo * group,
struct UserInfo * user,
struct Entity * server );
Check whether a user is a member of a group on the Accounts Server.
group - Non-NULL readable current GroupInfo record.
user - Non-NULL readable current UserInfo record.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero means membership was found. With the AROS server, ENVOYERR_UNKNOWNMEMBER means no membership; ENVOYERR_UNKNOWNGROUP or ENVOYERR_UNKNOWNUSER means the supplied record did not match. Neither caller record is modified. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
Supply complete, unchanged records from successful lookups. The AROS server checks all record fields, not just the IDs. A stale record is not interchangeable with a current one. Membership is checked against the server's membership list. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccModifyGroup(
struct AuthorityInfo * authority,
struct GroupInfo * newGroup,
struct GroupInfo * group,
struct Entity * server );
Request changes to an existing group record.
authority - Non-NULL AuthorityInfo containing NUL-terminated
ai_UserName and clear-text ai_Password of the authorizer.
newGroup - Non-NULL readable proposed GroupInfo record.
group - Non-NULL read/write complete current GroupInfo record.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, replacing *group with the returned record. On error, *group is unchanged. Separate newGroup storage is not modified. ACCERROR_NOAUTHORITY means failed authorizer authentication; ACCERROR_NOPRIVS means insufficient rights or a read-only backend. ENVOYERR_UNKNOWNGROUP means a stale/missing target; ACCERROR_GROUPEXISTS means a conflicting name. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server permits AdminAll or the group's recorded admin. It updates name, group ID, admin ID and flags; an empty proposed name leaves the existing name unchanged. The full current record must match. Changing the group ID does not rewrite users' primary group IDs, and the backend does not check for a conflicting numeric group ID. Coordinate such changes explicitly. Group flags are not represented in the AROS backend's group file and are not preserved by saving and reloading that file. Requires an authenticated authorizer and writable backend; a read-only usergroup.library backend reports ACCERROR_NOPRIVS. Success confirms the server's in-memory change, not durable storage: later file-save errors are not reported to the caller. A transport error does not prove that no change occurred. Query the server before retrying a destructive request. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccModifyUser(
struct AuthorityInfo * authority,
struct UserInfo * newUser,
struct UserInfo * user,
struct Entity * server );
Request changes to an existing user record.
authority - Non-NULL AuthorityInfo containing NUL-terminated
ai_UserName and clear-text ai_Password of the authorizer.
newUser - Non-NULL readable proposed UserInfo record.
user - Non-NULL read/write complete current UserInfo record.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, replacing *user with the returned record. On error, *user is unchanged. Separate newUser storage is not modified. ACCERROR_NOAUTHORITY means failed authorizer authentication; ACCERROR_NOPRIVS means insufficient rights or a read-only backend. ENVOYERR_UNKNOWNUSER means a stale/missing target; ACCERROR_USEREXISTS means a conflicting name. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server matches the current record in full. AdminAll may change the name, primary group and password-required state; a user with AdminName may rename themselves. The numeric user ID is not changed. An empty proposed name leaves the existing name unchanged. Clearing NeedsPassword removes the stored password and unlocks the account. Other flags are derived from server policy, not copied as arbitrary privilege bits; setting NeedsPassword does not create a password. Use the returned record, not the proposal, afterwards. Renaming retains any existing password token. Since ECrypt() includes the username, reset the password after a rename when using the stored Envoy-token authentication backend. Requires an authenticated authorizer and writable backend; a read-only usergroup.library backend reports ACCERROR_NOPRIVS. Success confirms the server's in-memory change, not durable storage: later file-save errors are not reported to the caller. A transport error does not prove that no change occurred. Query the server before retrying a destructive request. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccNameToGroup(
STRPTR groupName,
struct GroupInfo * group,
struct Entity * server );
Look up a group record by name.
groupName - Non-NULL NUL-terminated group name.
group - Non-NULL writable struct GroupInfo.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, with *group replaced by the returned record. The AROS server returns ENVOYERR_UNKNOWNGROUP when no match exists. On any error, *group is unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server compares names case-insensitively. This is a lookup, not authentication. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccNameToUser(
STRPTR userName,
struct UserInfo * user,
struct Entity * server );
Look up a user record by name.
userName - Non-NULL NUL-terminated user name.
user - Non-NULL writable struct UserInfo.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, with *user replaced by the returned record. The AROS server returns ENVOYERR_UNKNOWNUSER when no match exists. On any error, *user is unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server compares names case-insensitively. This is a lookup, not authentication. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccNextGroup(
struct GroupInfo * group,
struct Entity * server );
Enumerate group records maintained by the Accounts Server.
group - Non-NULL read/write struct GroupInfo. Zero the whole record
before the first call. For each subsequent call, pass the
complete record returned by the previous successful call.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, replacing *group with the next record. ENVOYERR_LASTGROUP at the end of the AROS server's list, or if the previous record no longer matches. On any error, including end of list, the caller's record remains unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server starts when the name is empty and ID is zero. Otherwise it matches name, ID and all remaining fields before advancing in case-insensitive name order. Editing the cursor record or changing the server database can end enumeration early. There is no snapshot across calls. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccNextMember(
struct GroupInfo * group,
struct UserInfo * user,
struct Entity * server );
Enumerate the users belonging to a group on the Accounts Server.
group - Non-NULL readable current GroupInfo record.
user - Non-NULL read/write UserInfo cursor. Zero the whole record
to start; subsequently use the previous successful result.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, replacing *user with the next member's record. The AROS server returns ENVOYERR_UNKNOWNGROUP for a mismatched group or ENVOYERR_LASTMEMBER at the end, for a mismatched cursor, or when the cursor no longer belongs to the group. On any error, *user is unchanged. The group record is never modified. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server checks complete records and enumerates the group's stored member IDs in ascending order, skipping IDs without a user record. If an ID is shared by users, its first name-ordered record is returned. There is no snapshot across calls. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccNextUser(
struct UserInfo * user,
struct Entity * server );
Enumerate user records maintained by the Accounts Server.
user - Non-NULL read/write struct UserInfo. Zero the whole record
before the first call. For each subsequent call, pass the
complete record returned by the previous successful call.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, replacing *user with the next record. ENVOYERR_LASTUSER at the end of the AROS server's list, or if the previous record no longer matches. On any error, including end of list, the caller's record remains unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server starts when the name is empty and ID is zero. Otherwise it matches name, ID and all remaining fields before advancing in case-insensitive name order. Editing the cursor record or changing the server database can end enumeration early. There is no snapshot across calls. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccRemoveMember(
struct AuthorityInfo * authority,
struct GroupInfo * group,
struct UserInfo * user,
struct Entity * server );
Remove a user from a group's explicit membership list.
authority - Non-NULL AuthorityInfo containing NUL-terminated
ai_UserName and clear-text ai_Password of the authorizer.
group - Non-NULL readable complete current GroupInfo record.
user - Non-NULL readable complete current UserInfo record.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success. Neither caller record is modified. ACCERROR_NOAUTHORITY means failed authorizer authentication; ACCERROR_NOPRIVS means insufficient rights or a read-only backend. ENVOYERR_UNKNOWNGROUP or ENVOYERR_UNKNOWNUSER means a stale/missing record. ENVOYERR_UNKNOWNMEMBER means membership was absent. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server permits AdminAll or the group's recorded admin and matches all fields of both records. Membership is keyed by user ID; users sharing an ID share this membership. This operation does not change the user's primary group field. Requires an authenticated authorizer and writable backend; a read-only usergroup.library backend reports ACCERROR_NOPRIVS. Success confirms the server's in-memory change, not durable storage: later file-save errors are not reported to the caller. A transport error does not prove that no change occurred. Query the server before retrying a destructive request. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccSetPassword(
struct AuthorityInfo * authority,
struct UserInfo * user,
STRPTR password,
struct Entity * server );
Set or remove a user password on the Accounts Server.
authority - Non-NULL AuthorityInfo containing NUL-terminated
ai_UserName and clear-text ai_Password of the authorizer.
user - Non-NULL readable complete current UserInfo record.
password - NUL-terminated new clear-text password, or NULL/empty
to remove the password.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success. The caller's user record is not modified. ACCERROR_NOAUTHORITY means failed authorizer authentication; ACCERROR_NOPRIVS means insufficient rights or a read-only backend. ENVOYERR_UNKNOWNUSER means the complete target record did not match. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server permits AdminAll, or a user changing their own password with AdminPassword. Setting a password also unlocks the account; NULL or an empty string removes its password. Requery the user record afterwards because flags may have changed. The new password and authority password are sent as clear text by this API. Requires an authenticated authorizer and writable backend; a read-only usergroup.library backend reports ACCERROR_NOPRIVS. Success confirms the server's in-memory change, not durable storage: later file-save errors are not reported to the caller. A transport error does not prove that no change occurred. Query the server before retrying a destructive request. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccVerifyUser(
STRPTR userName,
STRPTR password,
struct UserInfo * user,
struct Entity * server );
Ask the Accounts Server to authenticate a user and, on success, return the user's record. This does not change the caller's local credentials or establish a login session.
userName - Non-NULL NUL-terminated username.
password - NUL-terminated clear-text password,
or NULL for an empty value.
user - Non-NULL writable struct UserInfo.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, with *user replaced by the returned record. On any error, *user is unchanged. The AROS server reports ENVOYERR_UNKNOWNUSER for an unknown/locked user or failed authentication; these cases are not distinguished. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The password is placed in the request as clear text by this API. The AROS server applies its configured authentication policy. An unlocked account without UFLAGF_NeedsPassword accepts any password token. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
ULONG AccVerifyUserCrypt(
STRPTR userName,
STRPTR password,
struct UserInfo * user,
struct Entity * server );
Ask the Accounts Server to authenticate a user and, on success, return the user's record. This does not change the caller's local credentials or establish a login session.
userName - Non-NULL NUL-terminated username.
password - NUL-terminated 11-character token produced by ECrypt() for this username,
or NULL for an empty value.
user - Non-NULL writable struct UserInfo.
server - Borrowed Accounts Server entity obtained through NIPC,
valid until return, or NULL to use the per-task cached
server selected by Envoy/AccountsServer (local by default).
Zero on success, with *user replaced by the returned record. On any error, *user is unchanged. The AROS server reports ENVOYERR_UNKNOWNUSER for an unknown/locked user or failed authentication; these cases are not distinguished. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server applies its configured authentication policy. An unlocked account without UFLAGF_NeedsPassword accepts any password token. A crypt token is sent as given, not computed by this call. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending.
struct GroupInfo * AllocGroupInfo();
Allocate a zero-filled struct GroupInfo for account queries.
None.
A caller-owned pointer, or NULL if allocation fails. Release a successful allocation with FreeGroupInfo().
Storage is allocated with MEMF_PUBLIC | MEMF_CLEAR. This allocates only a local record; it does not create a server-side group, contact the Accounts Server or reserve an account ID. The zero-filled record can start NextGroup() enumeration. Call from task context.
struct UserInfo * AllocUserInfo();
Allocate a zero-filled struct UserInfo for account queries.
None.
A caller-owned pointer, or NULL if allocation fails. Release a successful allocation with FreeUserInfo().
Storage is allocated with MEMF_PUBLIC | MEMF_CLEAR. This allocates only a local record; it does not create a server-side user, contact the Accounts Server or reserve an account ID. The zero-filled record can start NextUser() enumeration. Call from task context.
STRPTR ECrypt(
STRPTR buffer,
STRPTR password,
STRPTR username );
Compute the legacy, username-dependent Envoy password token. The first 12 password and username bytes participate; ASCII uppercase letters in the username are folded to lowercase. The result has 11 characters followed by a NUL byte.
buffer - Writable storage for at least 12 bytes, or NULL. password - NUL-terminated clear-text password, or NULL for empty. username - NUL-terminated username, or NULL for empty.
buffer after writing the token, or NULL when buffer is NULL. No output-size check is performed.
No allocation, server request or wait is performed. All buffers remain caller-owned. This is the Envoy compatibility token format, not reversible encryption. Bytes after the first 12 do not change the token, but the input strings must still be NUL-terminated.
void FreeGroupInfo(
struct GroupInfo * group );
Free a record allocated by AllocGroupInfo().
group - Pointer returned by AllocGroupInfo(), or NULL.
None. NULL has no effect.
Finish all uses of the record before freeing it. Its pointer is invalid afterwards. This releases local storage only; it does not delete the corresponding server-side group or contact the server. Call from task context.
void FreeUserInfo(
struct UserInfo * user );
Free a record allocated by AllocUserInfo().
user - Pointer returned by AllocUserInfo(), or NULL.
None. NULL has no effect.
Finish all uses of the record before freeing it. Its pointer is invalid afterwards. This releases local storage only; it does not delete the corresponding server-side user or contact the server. Call from task context.
ULONG IDToGroup(
UWORD groupID,
struct GroupInfo * group );
Look up a group record by numeric ID.
groupID - 16-bit numeric group ID. group - Non-NULL writable struct GroupInfo.
Zero on success, with *group replaced by the returned record. The AROS server returns ENVOYERR_UNKNOWNGROUP when no match exists. On any error, *group is unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server returns the first record with this ID in its name-ordered list. IDs can be shared by multiple records in the backend; an ID lookup is therefore not a unique-name lookup. This is a lookup, not authentication. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.
ULONG IDToUser(
UWORD userID,
struct UserInfo * user );
Look up a user record by numeric ID.
userID - 16-bit numeric user ID. user - Non-NULL writable struct UserInfo.
Zero on success, with *user replaced by the returned record. The AROS server returns ENVOYERR_UNKNOWNUSER when no match exists. On any error, *user is unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server returns the first record with this ID in its name-ordered list. IDs can be shared by multiple records in the backend; an ID lookup is therefore not a unique-name lookup. This is a lookup, not authentication. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.
ULONG MemberOf(
struct GroupInfo * group,
struct UserInfo * user );
Check whether a user is a member of a group on the Accounts Server.
group - Non-NULL readable current GroupInfo record. user - Non-NULL readable current UserInfo record.
Zero means membership was found. With the AROS server, ENVOYERR_UNKNOWNMEMBER means no membership; ENVOYERR_UNKNOWNGROUP or ENVOYERR_UNKNOWNUSER means the supplied record did not match. Neither caller record is modified. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
Supply complete, unchanged records from successful lookups. The AROS server checks all record fields, not just the IDs. A stale record is not interchangeable with a current one. Membership is checked against the server's membership list. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.
ULONG NameToGroup(
STRPTR groupName,
struct GroupInfo * group );
Look up a group record by name.
groupName - Non-NULL NUL-terminated group name. group - Non-NULL writable struct GroupInfo.
Zero on success, with *group replaced by the returned record. The AROS server returns ENVOYERR_UNKNOWNGROUP when no match exists. On any error, *group is unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server compares names case-insensitively. This is a lookup, not authentication. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.
ULONG NameToUser(
STRPTR userName,
struct UserInfo * user );
Look up a user record by name.
userName - Non-NULL NUL-terminated user name. user - Non-NULL writable struct UserInfo.
Zero on success, with *user replaced by the returned record. The AROS server returns ENVOYERR_UNKNOWNUSER when no match exists. On any error, *user is unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server compares names case-insensitively. This is a lookup, not authentication. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.
ULONG NextGroup(
struct GroupInfo * group );
Enumerate group records maintained by the Accounts Server.
group - Non-NULL read/write struct GroupInfo. Zero the whole record
before the first call. For each subsequent call, pass the
complete record returned by the previous successful call.
Zero on success, replacing *group with the next record. ENVOYERR_LASTGROUP at the end of the AROS server's list, or if the previous record no longer matches. On any error, including end of list, the caller's record remains unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server starts when the name is empty and ID is zero. Otherwise it matches name, ID and all remaining fields before advancing in case-insensitive name order. Editing the cursor record or changing the server database can end enumeration early. There is no snapshot across calls. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.
ULONG NextMember(
struct GroupInfo * group,
struct UserInfo * user );
Enumerate the users belonging to a group on the Accounts Server.
group - Non-NULL readable current GroupInfo record.
user - Non-NULL read/write UserInfo cursor. Zero the whole record
to start; subsequently use the previous successful result.
Zero on success, replacing *user with the next member's record. The AROS server returns ENVOYERR_UNKNOWNGROUP for a mismatched group or ENVOYERR_LASTMEMBER at the end, for a mismatched cursor, or when the cursor no longer belongs to the group. On any error, *user is unchanged. The group record is never modified. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server checks complete records and enumerates the group's stored member IDs in ascending order, skipping IDs without a user record. If an ID is shared by users, its first name-ordered record is returned. There is no snapshot across calls. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.
ULONG NextUser(
struct UserInfo * user );
Enumerate user records maintained by the Accounts Server.
user - Non-NULL read/write struct UserInfo. Zero the whole record
before the first call. For each subsequent call, pass the
complete record returned by the previous successful call.
Zero on success, replacing *user with the next record. ENVOYERR_LASTUSER at the end of the AROS server's list, or if the previous record no longer matches. On any error, including end of list, the caller's record remains unchanged. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server starts when the name is empty and ID is zero. Otherwise it matches name, ID and all remaining fields before advancing in case-insensitive name order. Editing the cursor record or changing the server database can end enumeration early. There is no snapshot across calls. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.
ULONG VerifyUser(
STRPTR userName,
STRPTR password,
struct UserInfo * user );
Ask the Accounts Server to authenticate a user and, on success, return the user's record. This does not change the caller's local credentials or establish a login session.
userName - Non-NULL NUL-terminated username.
password - NUL-terminated clear-text password,
or NULL for an empty value.
user - Non-NULL writable struct UserInfo.
Zero on success, with *user replaced by the returned record. On any error, *user is unchanged. The AROS server reports ENVOYERR_UNKNOWNUSER for an unknown/locked user or failed authentication; these cases are not distinguished. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The password is placed in the request as clear text by this API. The AROS server applies its configured authentication policy. An unlocked account without UFLAGF_NeedsPassword accepts any password token. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.
ULONG VerifyUserCrypt(
STRPTR userName,
STRPTR password,
struct UserInfo * user );
Ask the Accounts Server to authenticate a user and, on success, return the user's record. This does not change the caller's local credentials or establish a login session.
userName - Non-NULL NUL-terminated username.
password - NUL-terminated 11-character token produced by ECrypt() for this username,
or NULL for an empty value.
user - Non-NULL writable struct UserInfo.
Zero on success, with *user replaced by the returned record. On any error, *user is unchanged. The AROS server reports ENVOYERR_UNKNOWNUSER for an unknown/locked user or failed authentication; these cases are not distinguished. ENVOYERR_NULLPTR denotes a missing required pointer; ENVOYERR_NORESOURCES denotes an allocation or context failure. Discovery, NIPC and server errors propagate unchanged; see <envoy/errors.h> and <envoy/accounts.h>.
The AROS server applies its configured authentication policy. An unlocked account without UFLAGF_NeedsPassword accepts any password token. A crypt token is sent as given, not computed by this call. Synchronous task-context call; may block. The requested five- second NIPC transaction timeout does not bound discovery, local server waits or total execution time. Caller-owned data must remain valid until return. Strings must be NUL-terminated; wire string fields retain at most 31 characters. Do not close accounts.library from this task while the request is pending. The server is the per-task cached "Accounts Server" entity, on the host selected by Envoy/AccountsServer through GetVar(), or local when no host is selected. The library owns this cached link.