Provided by: interchange_5.7.7-2_amd64 bug

NAME

       UserDB.pm -- Interchange User Database Functions

SYNOPSIS

       userdb $function, %options

DESCRIPTION

       The Interchange user database saves information for users, including shipping, billing,
       and preference information.  It allows the user to return to a previous session without
       the requirement for a "cookie" or other persistent session information.

       It is object-oriented and called via the [userdb] usertag, which calls the userdb
       subroutine.

       It restores and manipulates the form values normally stored in the user session values --
       the ones set in forms and read through the "[value variable]" tags.  A special function
       allows saving of shopping cart contents.

       The preference, billing, and shipping information is keyed so that different sets of
       information may be saved, providing and "address_book" function that can save more than
       one shipping and/or billing address. The set to restore is selected by the form values
       "s_nickname", "b_nickname", and "p_nickname".

METHODS

       User login:

           $obj->login();        # Form values are
                                 # mv_username, mv_password

       Create account:

           $obj->new_account();  # Form values are
                                 # mv_username, mv_password, mv_verify

       Change password:

           $obj->change_pass();  # Form values are
                                 # mv_username, mv_password_old, mv_password, mv_verify(new)

       Get, set user information:

           $obj->get_values();
           $obj->set_values();
           $obj->clear_values();

       Save, restore filed user information:

           $obj->get_shipping();
           $obj->set_shipping();

           $obj->get_billing();
           $obj->set_billing();

           $obj->get_preferences();
           $obj->set_preferences();

           $obj->get_cart();
           $obj->set_cart();

   Shipping Address Book
       The shipping address book saves information relevant to shipping the order. In its
       simplest form, this can be the only address book needed.  By default these form values are
       included:

               s_nickname
               name
               address
               city
               state
               zip
               country
               phone_day
               mv_shipmode

       The values are saved with the $obj->set_shipping() method and restored with
       $obj->get_shipping. A list of the keys available is kept in the form value "address_book",
       suitable for iteration in an HTML select box or in a set of links.

   Accounts Book
       The accounts book saves information relevant to billing the order. By default these form
       values are included:

               b_nickname
               b_name
               b_address
               b_city
               b_state
               b_zip
               b_country
               b_phone
               mv_credit_card_type
               mv_credit_card_exp_month
               mv_credit_card_exp_year
               mv_credit_card_reference

       The values are saved with the $obj->set_billing() method and restored with
       $obj->get_billing. A list of the keys available is kept in the form value "accounts",
       suitable for iteration in an HTML select box or in a set of links.

   Preferences
       Preferences are miscellaneous session information. They include by default the fields
       "email", "fax", "phone_night", and "fax_order". The field "p_nickname" acts as a key to
       select the preference set.

   Locations
       There are several database locations that have special purposes. These fields are not
       saved as user values.

       USERNAME                 default: username
           The username or key field of the database table.

       BILLING                  default: accounts
           Billing address hash field.

       SHIPPING                 default: address_book
           Shipping address hash field.

       PREFERENCES              default: preferences
           Miscellaneous information hash field.

       FEEDBACK                 default: feedback
           Customer feedback hash field.

       PRICING                  default: price_level
           Customer pricing level marker.

       CARTS                         default: carts
           Saved carts hash field.

       PASSWORD                 default: password
           Customer password info. If "crypt" is set, may be encrypted.

       LAST                     default: mod_time
           Last login time

       EXPIRATION               default: expiration
           Expiration of account.

       OUTBOARD_KEY        default: (none)
           Key information for linking to another table of address or other info.

       GROUPS                   default: groups
           Groups they should be logged into.

       SUPER                         default: super
           Whether they are a superuser (admin).

       ACL                      default: acl
       FILE_ACL                 default: file_acl
       DB_ACL                   default: db_acl
           Location of access control information.

       CREATED_DATE_ISO         default: (none)
       CREATED_DATE_UNIX        default: (none)
       UPDATED_DATE_ISO         default: (none)
       UPDATED_DATE_UNIX        default: (none)
           Date fields.

       MERGED_USER              default: (none)
           The user id of another account this was merged into. If present, and data (should be a
           valid user id) is present in the field, the user will be logged as that username.