--- /dev/null
+##VERSION: $Id: authsqliterc 17 2011-04-04 02:07:37Z mrsam $
+#
+# Copyright 2012 Double Precision, Inc. See COPYING for
+# distribution information.
+#
+# Do not alter lines that begin with ##, they are used when upgrading
+# this configuration.
+#
+# authsqliterc created from authsqliterc.dist by sysconftool
+#
+# Each line in this file must follow the following format:
+#
+# field[spaces|tabs]value
+#
+# That is, the name of the field, followed by spaces or tabs, followed by
+# field value. Trailing spaces are prohibited.
+
+
+##NAME: LOCATION:0
+#
+# The SQLite database. You must create this database beforehand, and create
+# the users table, as defined below.
+
+SQLITE_DATABASE /var/users.db
+
+##NAME: SQLITE_USER_TABLE:0
+#
+# Suggested format of the table specified by SQLITE_USER_TABLE:
+#
+# CREATE TABLE passwd (
+# id text not null primary key,
+# crypt text, # Either...
+# clear text, # ... or
+# name text,
+# uid int,
+# gid int,
+# home text not null,
+# maildir text,
+# defaultdelivery text,
+# quota text,
+# options text);
+#
+# Use either crypt or clear, to specify whether cleartext or crypted passwords
+# get used (and define either SQLITE_CRYPT_PWFIELD or SQLITE_CLEAR_PWFIELD,
+# below, accordingly).
+
+SQLITE_USER_TABLE passwd
+
+##NAME: SQLITE_CRYPT_PWFIELD:0
+#
+# Either SQLITE_CRYPT_PWFIELD or SQLITE_CLEAR_PWFIELD must be defined. Both
+# are OK too. crypted passwords go into SQLITE_CRYPT_PWFIELD, cleartext
+# passwords go into SQLITE_CLEAR_PWFIELD. Cleartext passwords allow
+# CRAM-MD5 authentication to be implemented.
+
+SQLITE_CRYPT_PWFIELD crypt
+
+##NAME: SQLITE_CLEAR_PWFIELD:0
+#
+#
+# SQLITE_CLEAR_PWFIELD clear
+
+##NAME: SQLITE_DEFAULT_DOMAIN:0
+#
+# If DEFAULT_DOMAIN is defined, and someone tries to log in as 'user',
+# we will search for 'user@DEFAULT_DOMAIN' instead.
+#
+#
+# DEFAULT_DOMAIN example.com
+
+##NAME: SQLITE_UID_FIELD:0
+#
+# Other fields in the sqlite table:
+#
+# SQLITE_UID_FIELD - contains the numerical userid of the account
+#
+SQLITE_UID_FIELD uid
+
+##NAME: SQLITE_GID_FIELD:0
+#
+# Numerical groupid of the account
+
+SQLITE_GID_FIELD gid
+
+##NAME: SQLITE_LOGIN_FIELD:0
+#
+# The login id, default is id. Basically the query is:
+#
+# SELECT SQLITE_UID_FIELD, SQLITE_GID_FIELD, ... WHERE id='loginid'
+#
+
+SQLITE_LOGIN_FIELD id
+
+##NAME: SQLITE_HOME_FIELD:0
+#
+
+SQLITE_HOME_FIELD home
+
+##NAME: SQLITE_NAME_FIELD:0
+#
+# The user's name (optional)
+
+SQLITE_NAME_FIELD name
+
+##NAME: SQLITE_MAILDIR_FIELD:0
+#
+# This is an optional field, and can be used to specify an arbitrary
+# location of the maildir for the account, which normally defaults to
+# $HOME/Maildir (where $HOME is read from SQLITE_HOME_FIELD).
+#
+# You still need to provide a SQLITE_HOME_FIELD, even if you uncomment this
+# out.
+#
+# SQLITE_MAILDIR_FIELD maildir
+
+##NAME: SQLITE_DEFAULTDELIVERY:0
+#
+# Courier mail server only: optional field specifies custom mail delivery
+# instructions for this account (if defined) -- essentially overrides
+# DEFAULTDELIVERY from ${sysconfdir}/courierd
+#
+# SQLITE_DEFAULTDELIVERY defaultdelivery
+
+##NAME: SQLITE_QUOTA_FIELD:0
+#
+# Define SQLITE_QUOTA_FIELD to be the name of the field that can optionally
+# specify a maildir quota. See README.maildirquota for more information
+#
+# SQLITE_QUOTA_FIELD quota
+
+##NAME: SQLITE_AUXOPTIONS:0
+#
+# Auxiliary options. The SQLITE_AUXOPTIONS field should be a char field that
+# contains a single string consisting of comma-separated "ATTRIBUTE=NAME"
+# pairs. These names are additional attributes that define various per-account
+# "options", as given in INSTALL's description of the "Account OPTIONS"
+# setting.
+#
+# SQLITE_AUXOPTIONS_FIELD options
+#
+# You might want to try something like this, if you'd like to use a bunch
+# of individual fields, instead of a single text blob:
+#
+# SQLITE_AUXOPTIONS_FIELD "disableimap=" || disableimap || ",disablepop3=" || disablepop3 || ",disablewebmail=" || disablewebmail || ",sharedgroup=" || sharedgroup
+#
+# This will let you define fields called "disableimap", etc, with the end result
+# being something that the OPTIONS parser understands.
+
+
+##NAME: SQLITE_WHERE_CLAUSE:0
+#
+# This is optional, SQLITE_WHERE_CLAUSE can be basically set to an arbitrary
+# fixed string that is appended to the WHERE clause of our query
+#
+# SQLITE_WHERE_CLAUSE server='mailhost.example.com'
+
+##NAME: SQLITE_SELECT_CLAUSE:0
+#
+# This is optional, SQLITE_SELECT_CLAUSE can be set when you have a database,
+# which is structuraly different from the proposed layout. The fixed string will
+# be used to do a SELECT operation on database, which should return fields
+# in order specified bellow:
+#
+# username, cryptpw, clearpw, uid, gid, home, maildir, quota, fullname, options
+#
+# The username field should include the domain (see example below).
+#
+# Enabling this option causes ignorance of any other field-related
+# options, excluding default domain.
+#
+# There are two variables, which you can use. Substitution will be made
+# for them, so you can put entered username (local part) and domain name
+# in the right place of your query. These variables are:
+# $(local_part), $(domain), $(service)
+#
+# If a $(domain) is empty (not given by the remote user) the default domain
+# name is used in its place.
+#
+# $(service) will expand out to the service being authenticated: imap, imaps,
+# pop3 or pop3s. Courier mail server only: service will also expand out to
+# "courier", when searching for local mail account's location. In this case,
+# if the "maildir" field is not empty it will be used in place of
+# DEFAULTDELIVERY. Courier mail server will also use esmtp when doing
+# authenticated ESMTP.
+#
+# For example:
+#
+# SQLITE_SELECT_CLAUSE SELECT popbox.local_part || '@' || popbox.domain_name,\
+# '{MD5}' || popbox.password_hash), \
+# popbox.clearpw, \
+# domain.uid, \
+# domain.gid, \
+# domain.path || '/' || popbox.mbox_name, \
+# '', \
+# domain.quota, \
+# '', \
+# "disableimap=" || disableimap || ",disablepop3=" || \
+# disablepop3 || ",disablewebmail=" || disablewebmail || \
+# ",sharedgroup=" || sharedgroup \
+# FROM popbox, domain \
+# WHERE popbox.local_part = '$(local_part)' \
+# AND popbox.domain_name = '$(domain)' \
+# AND popbox.domain_name = domain.domain_name
+
+
+##NAME: SQLITE_ENUMERATE_CLAUSE:1
+#
+# Optional custom SQL query used to enumerate accounts for authenumerate,
+# in order to compile a list of accounts for shared folders. The query
+# should return the following fields: name, uid, gid, homedir, maildir, options
+#
+# Example:
+# SQLITE_ENUMERATE_CLAUSE SELECT popbox.local_part || '@' || popbox.domain_name, \
+# domain.uid, \
+# domain.gid, \
+# domain.path || '/' || popbox.mbox_name, \
+# '', \
+# 'sharedgroup=' || sharedgroup \
+# FROM popbox, domain \
+# WHERE popbox.local_part = '$(local_part)' \
+# AND popbox.domain_name = '$(domain)' \
+# AND popbox.domain_name = domain.domain_name
+
+
+##NAME: SQLITE_CHPASS_CLAUSE:0
+#
+# This is optional, SQLITE_CHPASS_CLAUSE can be set when you have a database,
+# which is structuraly different from proposed. The fixed string will
+# be used to do an UPDATE operation on database. In other words, it is
+# used, when changing passwords. This is used by sqwebmail/Courier webmail.
+#
+# There are four variables, which you can use. Substitution will be made
+# for them, so you can put entered username (local part) and domain name
+# in the right place of your query. There variables are:
+# $(local_part) , $(domain) , $(newpass) , $(newpass_crypt)
+#
+# If a $(domain) is empty (not given by the remote user) the default domain
+# name is used in its place.
+# $(newpass) contains plain password
+# $(newpass_crypt) contains its crypted form
+#
+# SQLITE_CHPASS_CLAUSE UPDATE popbox \
+# SET clearpw='$(newpass)', \
+# password_hash='$(newpass_crypt)' \
+# WHERE local_part='$(local_part)' \
+# AND domain_name='$(domain)'
+#