The user database features are implemented as a series of functions attached to the userdb tag. The functions are:
Log in to Minivend. By default, the username is contained in the form
variable mv_username
and the password in mv_password
. If the login is successful, the session value username
([data session username]
) will be set to the user name.
This will recall the values of all non-special fields in the user database and place them in their corresponding user form variables.
The CookieLogin directive (catalog.cfg) allows users to save their username/password in a
cookie. Expiration time is set by
SaveExpire, renewed every time they log in. To cause the cookie to be generated
originally, the form variable mv_cookie_password
or
mv_cookie_username
must be set in the login form. The former causes both username and password
to be saved, the latter just the username.
Create a new account. It requires the username
, password
, and
verify
parameters, which are by default contained in the form variables mv_username
, mv_password
, mv_verify
respectively.
If you set the assign_username
parameter, then UserDB will assign a sequential username. The counter parameter can be used to set the filename (must be absolute), or you can accept the default of CATALOG_DIR/etc/username.counter. The first username will be
``U0001'' if the counter doesn't exist already.
The ignore_case
parameter forces the username and password to lower case in the database,
in effect rendering the username and password case-insensitive.
If you set username_mask
to a valid Perl regular expression (without the surrounding / /) then any
username containing a matching string will not be allowed for use. For
example, to screen out order numbers from being used by a random user:
[userdb function=new_account username_mask="^[A-Z]*[0-9]" ]
The CookieLogin directive (catalog.cfg) allows users to save their username/password in a
cookie. Expiration time is set by
SaveExpire, renewed every time they log in. To cause the cookie to be generated
originally, the form variable mv_cookie_password
or
mv_cookie_username
must be set in the login form. The former causes both username and password
to be saved, the latter just the username.
If you want to automatically create an account for every order, you can do in the OrderReport file:
[userdb function=new_account username="[value mv_order_number]" password="[value zip]" verify="[value zip]" database="orders" ]
This would be coupled with a login form that asked for order number and zip code; thereupon allowing you to display the contents of a transaction database with (presumably updated) order status information or a shipping company tracking number.
Change the password on the currently logged-in account. It requires the username
, password
, verify
, and oldpass
parameters, which are by default contained in the form variables mv_username
,
mv_password
, mv_verify
, mv_password_old
respectively.
Place an entry in the shipping Address book. Example:
[userdb function=set_shipping nickname=Dad]
See Address Book below.
Recall an entry from the shipping Address book. Example:
[userdb function=get_shipping nickname=Dad]
See Address Book below.
Gets the names of shipping address book entries and places them in the
variable address_book
. By default, it does not return the values; if you wish them to be
returned you can set the parameter show
to 1, as in:
[set name=shipping_nicknames interpolate=1] [userdb function=get_shipping_names show=1] [/set]
Place an entry in the billing accounts book. Example:
[userdb function=set_billing nickname=discover]
See Accounts Book below.
Recall an entry from the billing accounts book. Example:
[userdb function=get_billing nickname=visa]
See Accounts Book below.
[userdb function=set_cart nickname=christmas]
See Carts below.
Recall a saved shopping cart.
[userdb function=get_cart nickname=mom_birthday]
Setting target
saves to a different shopping cart than the default main cart. The carts_field
controls the database field used for storage.
Set a simple acl. Example:
[userdb function=set_acl location=cartcfg/editcart]
This allows the current user to access the page ``cartcfg/editcart'' if it is access-protected.
To delete access, do:
[userdb function=set_acl location=cartcfg/editcart delete=1]
To display the setting at the same time as setting use the
show
attribute:
[userdb function=set_acl location=cartcf/editcart show=1]
Checks the simple access control listing for a location, returning 1 if allowed and the empty string if not allowed.
[if type=explicit compare="[userdb function=check_acl location=cartcfg/editcart]" ] [page cartcfg/editcart]Edit your cart configuration[/page] [/if]
Sets a complex access control value. Takes the form:
[userdb function=set_file_acl mode=rw location=products/inventory.txt]
where mode is any value you wish to check for with check_file_acl. As with the simple ACL, you can use delete=1 to delete the location entirely.
Checks a complex access control value and returns a true/false (1/0) value. Takes the form:
[userdb function=check_db_acl mode=w location=inventory]
where mode is any value you wish to check for with check_file_acl. It will return true if the mode string is contained within the entry for that location. Example:
[if type=explicit compare="[userdb function=check_db_acl mode=w location=inventory]" ] [userdb function=set_acl location=cartcfg/edit_inventory] [page cartcfg/edit_inventory]You may edit the inventory database[/page] [else] [userdb function=set_acl location=cartcfg/edit_inventory delete=1] Sorry, you can't edit inventory. [/if]