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
}.