english
version "1.0"
identify "xyz"
#: Copyright (c) 1996 by Wayne C. Gramlich.
#, All rights reserved.
#,
#, Permission to use, copy, modify, distribute, and sell this software
#, for any purpose is hereby granted without fee provided that the above
#, copyright notice and this permission are retained. The author makes
#, no representations about the suitability of this software for any purpose.
#, It is provided "as is" without express or implied warranty.
module user
#: The user module provides access to per user information.
define user #: The user record.
record
home_directory string #: Home directory for user
group_number unsigned #: Group number (gid)
full_name string #: Full user name
login_name string #: The user's login name
password string #: Encrypted password string
shell string #: User's login shell
user_number unsigned #: User number (uid)
generate allocate, erase, print
define password
external
#: {user} procedures:
procedure create@user
takes
password password
returns user
#: This procedure will take a {password} object and return a corresponging
#, {user} object that has all of its fields filled in.
procedure login_name_lookup@user
takes
login_name string
returns user
#: This procedure will return a {user} object that corresponds to
#, {login_name}. ??@{user} is returned if there is no login name
#, that matches {login_name}.
procedure user_number_lookup@user
takes
user_number unsigned
returns user
#: This procedure will fill in the contents of {user} with
#, the values associated with the {user_number} user.
#, ??@{user} is returned if there is no login name
#, that matches {login_name}.
#: {password} procedures:
#, In general, these procedures are not safe.
procedure address_get@password
takes
password password
returns address
external password__address_get
#: This procedure will return the address of {password}.
procedure home_directory_get@password
takes
password password
returns string
external password__home_directory_get
#: This procedure will return the {home_directory} from {password}.
procedure identical@password
takes
password1 password
password2 password
returns logical
#: This procedure will return {true} if {password1} is identical to
#, {password2}.
procedure group_number_get@password
takes
password password
returns unsigned
external password__group_number_get
#: This procedure will return the {group_number} from {password}.
procedure full_name_get@password
takes
password password
returns string
external password__full_name_get
#: This procedure will return the {full_name} from {password}.
procedure login_name_get@password
takes
password password
returns string
external password__login_name_get
#: This procedure will return the {login_name} from {password}.
procedure login_name_lookup@password
takes
login_name string
returns password
external password__login_name_lookup
#: This procedure will return the {user} assocaiated with {login_name}.
procedure password_get@password
takes
password password
returns string
external password__password_get
#: This procedure will return the encrypted {password} from {password}.
procedure print@password
takes
password password
out_stream out_stream
returns_nothing
#: This procedure will print out the contents of {password} to
#, {out_stream}.
procedure shell_get@password
takes
password password
returns string
external password__shell_get
#: This procedure will return the {shell} from {password}.
procedure user_number_get@password
takes
password password
returns unsigned
external password__user_number_get
#: This procedure will return the {user_number} from {password}.
procedure user_number_lookup@password
takes
user_number unsigned
returns password
external password__user_number_lookup
#: This procedure will return the {password} from assocaitied with
#, {user_number}.