diff options
Diffstat (limited to 'htdocs/docs')
42 files changed, 1170 insertions, 242 deletions
diff --git a/htdocs/docs/CGI-modules-2.76-patch.txt b/htdocs/docs/CGI-modules-2.76-patch.txt deleted file mode 100755 index 55b50bbbe..000000000 --- a/htdocs/docs/CGI-modules-2.76-patch.txt +++ /dev/null @@ -1,23 +0,0 @@ -ivan@rootwood:~/src/CGI-modules-2.76/CGI$ diff -c Base.pm Base.pm.orig -*** Base.pm Sat Jul 18 00:33:21 1998 ---- Base.pm.orig Sat Jul 18 00:06:12 1998 -*************** -*** 938,945 **** - my $orig_uri = $self->get_uri; - $self->log("Redirecting $CGI::Base::REQUEST_METHOD $orig_uri to $to_uri") - if $Debug; -! my $msg = ($perm) ? StatusHdr(301,"Moved Permanently") -! : StatusHdr(302,"Moved Temporarily"); - my $hdrs = SendHeaders($msg, LocationHdr($to_uri)); - $self->log($hdrs); - } ---- 938,945 ---- - my $orig_uri = $self->get_uri; - $self->log("Redirecting $CGI::Base::REQUEST_METHOD $orig_uri to $to_uri") - if $Debug; -! my $msg = ($perm) ? ServerHdr(301,"Moved Permanently") -! : ServerHdr(302,"Moved Temporarily"); - my $hdrs = SendHeaders($msg, LocationHdr($to_uri)); - $self->log($hdrs); - } - diff --git a/htdocs/docs/config.html b/htdocs/docs/config.html index 9b8002601..1a30b525e 100644 --- a/htdocs/docs/config.html +++ b/htdocs/docs/config.html @@ -3,7 +3,23 @@ </head> <body> <h1>Configuration files</h1> -Configuration files and directories are located in `/var/spool/freeside/conf'. +Configuration file layout has changed in 1.2.x. +<ul> + <li>First, the file `/usr/local/etc/freeside/mapsecrets' is read. Each line +in this file contains a username and filename, separated by whitespace. Note +that these are not local usernames - they are passed from Apache (you _did_ +setup <a href="http://www.apache.org/docs/misc/FAQ.html#user-authentication"> +user authetication</a>, correct?). Filenames are located in +`/usr/local/etc/freeside/'. The specified filename is parsed exactly +the same as the pre-1.2.x `secrets' file: + <li>Three lines: Database engine datasource (for example, + `DBI:mysql:freeside' or `DBI:Pg:dbname=freeside'), username, and password. + This file should not be world readable. See the DBI manpage and the manpage + for your DBD for the exact syntax. +</ul> +All further configuration files and directories are located in +`/usr/local/etc/freeside/conf.<i>datasource</i>', for example, +`/usr/local/etc/freeside/conf.DBI:Pg:dbname=freeside' <ul> <li>address - Your company name and address, four lines. <li>bsdshellmachines - Your BSD flavored shell (and mail) machines, one per line. This enables export of `/etc/passwd' and `/etc/master.passwd'. @@ -12,6 +28,7 @@ Configuration files and directories are located in `/var/spool/freeside/conf'. <li>domain - Your domain name. <li>erpcdmachines - Your ERPCD authenticaion machines, one per line. This enables export of `/usr/annex/acp_passwd' and `/usr/annex/acp_dialup'. <li>home - For new users, prefixed to usrename to create a directory name. Should have a leading but not a trailing slash. + <li>invoice_from - Return address on email invoices. <li>lpr - Print command for paper invoices, for example `lpr -h'. <li>nismachines - Your NIS master (not slave master) machines, one per line. This enables export of `/etc/global/passwd' and `/etc/global/shadow'. <li>qmailmachines - Your qmail machines, one per line. This enables export of `/var/qmail/control/virtualdomains', `/var/qmail/control/recipientmap', and `/var/qmail/control/rcpthosts'. The existance of this file (even if empty) also turns on user `.qmail-extension' file maintenance in conjunction with `shellmachine'. @@ -27,7 +44,6 @@ Configuration files and directories are located in `/var/spool/freeside/conf'. <li>registries/internic/to - Email address to which InterNIC domain registrations are sent. </ul> </ul> - <li>secrets - Three lines: Database engine datasource (for example, `DBI:mysql:freeside' or `DBI:Pg:dbname=freeside'), username, and password. This file should not be world readable. <li>sendmailmachines - Your sendmail machines, one per line. This enables export of `/etc/virtusertable' and `/etc/sendmail.cw'. <li>shellmachine - A single machine with user home directories mounted. This enables home directory creation, renaming and archiving/deletion. In conjunction with `qmailmachines', it also enables `.qmail-extension' file maintenance. <li>shellmachines - Your Linux and System V flavored shell (and mail) machines, one per line. This enables export of `/etc/passwd' and `/etc/shadow' files. diff --git a/htdocs/docs/export.html b/htdocs/docs/export.html index f760b97dd..86a2b4ccd 100644 --- a/htdocs/docs/export.html +++ b/htdocs/docs/export.html @@ -4,29 +4,30 @@ <body> <h1>File exporting</h1> <ul> - <li>bin/svc_acct.export will create UNIX `passwd', `shadow' and `master.passwd' files, ERPCD `acp_passwd' and `acp_dialup' files and a RADIUS `users' file in the `/var/spool/freeside/export' directory. Using the appropriate <a href="config.html">configuration files</a>, you can export these files to your remote machines unattended; see below. + <li>bin/svc_acct.export will create UNIX <b>passwd</b>, <b>shadow</b> and <b>master.passwd</b> files, ERPCD <b>acp_passwd</b> and <b>acp_dialup</b> files and a RADIUS <b>users</b> file in the <b>/usr/local/etc/freeside/export.<i>datasrc</i></b> directory. Using the appropriate <a href="config.html">configuration files</a>, you can export these files to your remote machines unattended; see below. Some RADIUS servers (such as <a href="http://www.open.com.au/radiator/">Radiator</a>) will authenticate directly out of an SQL database. In these cases, +it is reccommended that you copy the svc_acct table to an external RADIUS machine rather than run the RADIUS server on your Freeside machine. <ul> - <li>shellmachines - passwd and shadow are copied to the remote machine as /etc/passwd.new and /etc/shadow.net and then moved to /etc/passwd and /etc/shadow if no errors occur. - <li>bsdshellmachines - passwd and master.passwd are copied to the remote machine as /etc/passwd.new and /etc/master.passwd.new and moved to /etc/passwd and /etc/master.passwd if no errors occur. - <li>nismachines - passwd and shadow are copied to the `/etc/global' directory on the remote machine. If no errors occur, the command `( cd /var/yp; make; )' is executed on the remote machine. - <li>erpcdmachines - acp_passwd and acp_dialup are copied to the `/usr/annex' directory on the remote machine. If no errors occur, the command `( kill -USR1 `cat /usr/annex/erpcd.pid` )' is executed on the remote machine. - <li>radiusmachines - users is copied to the `/etc/raddb' directory on the remote machine. If no errors occur, the command `( builddbm )' is executed on the remote machine. + <li>shellmachines - <b>passwd</b> and <b>shadow</b> are copied to the remote machine as <b>/etc/passwd.new</b> and <b>/etc/shadow.new</b> and then moved to <b>/etc/passwd</b> and <b>/etc/shadow</b> if no errors occur. + <li>bsdshellmachines - <b>passwd</b> and <b>master.passwd</b> are copied to the remote machine as <b>/etc/passwd.new</b> and <b>/etc/master.passwd.new</b> and moved to <b>/etc/passwd</b> and <b>/etc/master.passwd</b> if no errors occur. + <li>nismachines - <b>passwd</b> and <b>shadow</b> are copied to the <b>/etc/global</b> directory on the remote machine. If no errors occur, the command <b>( cd /var/yp; make; )</b> is executed on the remote machine. + <li>erpcdmachines - <b>acp_passwd</b> and <b>acp_dialup</b> are copied to the <b>/usr/annex</b> directory on the remote machine. If no errors occur, the command <b>( kill -USR1 `cat /usr/annex/erpcd.pid` )</b> is executed on the remote machine. + <li>radiusmachines - <b>users</b> is copied to the <b>/etc/raddb</b> directory on the remote machine. If no errors occur, the command <b>( builddbm )</b> is executed on the remote machine. </ul> <li>site_perl/svc_acct.pm - If a shellmachine is defined, users can be created, modified and deleted remotely; see below. <ul> - <li>The command `useradd -d <i>homedir</i> -s <i>shell</i> -u <i>uid</i> <i>username</i>' is executed when a user is added. - <li>The command `userdel <i>username</i>' is executed with a user is deleted. - <li>If a user's home directory changes, the command `[ -d <i>old_homedir</i> && ( chmod u+t <i>old_homedir</i>; umask 022; mkdir <i>new_homedir</i>; cd <i>old_homedir</i>; find . -depth -print | cpio -pdm <i>new_homedir</i>; chmod u-t <i>new_homedir</i>; chown -R <i>uid</i>.<i>gid</i> <i>new_homedir</i>; rm -rf <i>old_homedir</i> )' is executed. + <li>The command <b>useradd -d <i>homedir</i> -s <i>shell</i> -u <i>uid</i> <i>username</i></b> is executed when a user is added. + <li>The command <b>userdel <i>username</i></b> is executed with a user is deleted. + <li>If a user's home directory changes, the command <b>[ -d <i>old_homedir</i> && ( chmod u+t <i>old_homedir</i>; umask 022; mkdir <i>new_homedir</i>; cd <i>old_homedir</i>; find . -depth -print | cpio -pdm <i>new_homedir</i>; chmod u-t <i>new_homedir</i>; chown -R <i>uid</i>.<i>gid</i> <i>new_homedir</i>; rm -rf <i>old_homedir</i> )</b> is executed. </ul> - <li>bin/svc_acct_sm.export will create <a href="http://www.qmail.org">Qmail</a> `rcpthosts', `recipientmap' and `virtualdomains' files and <a href="http://www.sendmail.org">Sendmail</a> `virtusertable' and `sendmail.cw' files in the `/var/spool/freeside/export' directory. Using the appropriate <a href="config.html">configuration files</a>, you can export these files to your remote machines unattemded; see below. + <li>bin/svc_acct_sm.export will create <a href="http://www.qmail.org">Qmail</a> <b>rcpthosts</b>, <b>recipientmap</b> and <b>virtualdomains</b> files and <a href="http://www.sendmail.org">Sendmail</a> <b>virtusertable</b> and <b>sendmail.cw</b> files in the <b>/usr/local/etc/freeside/export.<i>datasrc</i></b> directory. Using the appropriate <a href="config.html">configuration files</a>, you can export these files to your remote machines unattemded; see below. <ul> - <li>qmailmachines - recipientmap, virtualdomains and rcpthosts are copied to the `/var/qmail/control' directory on the remote machine. Note: If you <a href="legacy.html#svc_acct_sm">imported</a> qmail configuration files, run the generated `/var/spool/freeside/export/virtualdomains.FIX' on a machine with your user home directories before exporting qmail configuration files. - <li>shellmachine - The command `[ -e <i>homedir</i>/.qmail-default ] || { touch <i>homedir</i>/.qmail-default; chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-default; }' will be run on this machine for users in the virtualdomains file. - <li>sendmailmachines - sendmail.cw and virtusertable are copied to the remote machine as /etc/sendmail.cw.new and /etc/virtusertable.new and moved to /etc/sendmail.cw and /etc/virtusertable if no errors occur. + <li>qmailmachines - <b>recipientmap</b>, <b>virtualdomains</b> and <b>rcpthosts</b> are copied to the <b>/var/qmail/control</b> directory on the remote machine. Note: If you <a href="legacy.html#svc_acct_sm">imported</a> qmail configuration files, run the generated <b>/usr/local/etc/freeside/export.<i>datasrc</i>/virtualdomains.FIX</b> on a machine with your user home directories before exporting qmail configuration files. + <li>shellmachine - The command <b>[ -e <i>homedir</i>/.qmail-default ] || { touch <i>homedir</i>/.qmail-default; chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-default; }</b> will be run on this machine for users in the virtualdomains file. + <li>sendmailmachines - <b>sendmail.cw</b> and <b>virtusertable</b> are copied to the remote machine as <b>/etc/sendmail.cw.new</b> and <b>/etc/virtusertable.new</b> and moved to <b>/etc/sendmail.cw</b> and <b>/etc/virtusertable</b> if no errors occur. </ul> - <li>site_perl/svc_acct_sm.pm - If the qmailmachines configuration file exists and a shellmachine is defined, user `.qmail-' files can be updated. + <li>site_perl/svc_acct_sm.pm - If the qmailmachines configuration file exists and a shellmachine is defined, user <b>.qmail-</b> files can be updated. <ul> - <li>The command `[ -e <i>homedir</i>/.qmail-<i>domain</i>-default ] || { touch <i>homedir</i>/.qmail-<i>domain</i>-default; chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-<i>domain</i>-default; }' is run. + <li>The command <b>[ -e <i>homedir</i>/.qmail-<i>domain</i>-default ] || { touch <i>homedir</i>/.qmail-<i>domain</i>-default; chown <i>uid</i>.<i>gid</i> <i>homedir</i>/.qmail-<i>domain</i>-default; }</b> is run. </ul> </ul> <br><a name=ssh>Unattended remote login</a> - Freeside can login to remote machines unattended using SSH. This can pose a security risk if not configured correctly, and will allow an intruder who breaks into your freeside machine full access to your remote machines. <b>Do not use this feature unless you understand what you are doing!</b> diff --git a/htdocs/docs/index.html b/htdocs/docs/index.html index 20051ca4d..d593a5e3b 100644 --- a/htdocs/docs/index.html +++ b/htdocs/docs/index.html @@ -6,7 +6,8 @@ <ul> <li><a href="install.html">New Installation</a> <li><a href="upgrade.html">Upgrading from 1.0.x to 1.1.x</a> - <li><a href="upgrade2.html">Upgrading from 1.1.x to 1.1.3</a> + <li><a href="upgrade2.html">Upgrading from 1.1.x to 1.1.4</a> + <li><a href="upgrade3.html">Upgrading from 1.1.x to 1.2.x</a> <li><a href="config.html">Configuration files</a> <!-- <li><a href="admin.html">Administration</a> diff --git a/htdocs/docs/install.html b/htdocs/docs/install.html index c4784ebf6..7aaad14ae 100644 --- a/htdocs/docs/install.html +++ b/htdocs/docs/install.html @@ -7,17 +7,18 @@ Before installing, you need: <ul> <li>A web server, such as <a href="http://www.apache-ssl.org">Apache-SSL</a> or <a href="http://www.apache.org">Apache</a> <li><a href="ftp://ftp.cs.hut.fi/pub/ssh/">SSH</a> - <li>agrep from the <a href="http://glimpse.cs.arizona.edu">Glimpse</a> distribution, if you want fuzzy searching capability - <li><a href="http://www.perl.com/CPANl/doc/relinfo/INSTALL.html">Perl</a> (at least 5.004_04) - <li>A database engine supported by Perl's <a href="http://www.hermetica.com/technologia/DBI/">DBI</a>, such as <a href="http://www.tcx.se/">MySQL</a> or <a href="http://www.postgresql.org/">PostgreSQL</a> + <li><a href="http://www.perl.com/CPAN/doc/relinfo/INSTALL.html">Perl</a> (at least 5.004_04) + <li>A database engine supported by Perl's <a href="http://www.hermetica.com/technologia/DBI/">DBI</a>, such as <a href="http://www.tcx.se/">MySQL</a> or <a href="http://www.postgresql.org/">PostgreSQL</a> (see the <a href="postgresql.html">PostgreSQL notes</a>) <li>Perl modules <ul> + <li><a href="http://www.perl.com/CPAN/modules/by-module/Array/">Array-PrintCols</a> + <li><a href="http://www.perl.com/CPAN/modules/by-module/Term/">Term-Query</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/MIME/">MIME-Base64</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/Data">Data-Dumper</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/MD5">MD5</a> + <li><a href="http://www.perl.com/CPAN/modules/by-module/URI">URI</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/Net">libnet</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/LWP/">libwww-perl</a> - <li><a href="http://www.perl.com/CPAN/modules/by-module/CGI/">CGI-modules</a> (<b>NOT</b> CGI.pm) with this <a href="CGI-modules-2.76-patch.txt">patch</a> applied <li><a href="http://www.perl.com/CPAN/modules/by-module/Business/">Business-CreditCard</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/Data/">Data-ShowTable</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/Mail/">MailTools</a> @@ -25,6 +26,7 @@ Before installing, you need: <li><a href="http://www.perl.com/CPAN/modules/by-module/Date/">DateManip</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/File/">File-CounterFile</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/FreezeThaw/">FreezeThaw</a> + <li><a href="http://www.perl.com/CPAN/modules/by-module/String/">String-Approx</a> <li><a href="http://www.perl.com/CPAN/modules/by-module/DBI/">DBI <li><a href="http://www.perl.com/CPAN/modules/by-module/DBD/">DBD for your database engine</a> </ul> @@ -41,16 +43,24 @@ cp fs-x.y.z/site_perl/* /usr/local/lib/site_perl/FS</pre> or <pre>ln -s /full/pa cp -r fs-x.y.z/htdocs/* /usr/local/apache/htdocs/freeside</pre> or <pre>ln -s /full/path/to/fs-x.y.z/htdocs /usr/local/apache/htdocs/freeside</pre> <li>Restrict access to this web interface. (with <a href="http://www.apache.org/docs/misc/FAQ.html#user-authentication">Apache</a>) <li>Enable CGI execution for files with the `.cgi' extension. (with <a href="http://www.apache.org/docs/mod/mod_mime.html#addhandler">Apache</a>) - <li>Set ownership and permissions for the web interface. Your system should support secure setuid scripts or Perl's emulation, see <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html#Security_Bugs">perlsec: Security Bugs</a> for information and workarounds. + <li>Set ownership and permissions for the web interface. The web interface needs to run as the freeside user - there are several ways to do this. + <ul> + <li>Use Perl's setuid emulation: see the <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html#Security_Bugs">Security Bugs</a> section of the <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html">perlsec</a> manpage. <pre>cd /usr/local/apache/htdocs/freeside chown -R freeside . chmod 4755 browse/*.cgi edit/*.cgi edit/process/*.cgi misc/*.cgi misc/process/*.cgi search/*.cgi view/*.cgi</pre> -<li>Create the base Freeside directory `/var/spool/freeside', and the subdirectories `conf', `counters', and `export'. <pre>mkdir /var/spool/freeside -mkdir /var/spool/freeside/conf -mkdir /var/spool/freeside/counters -mkdir /var/spool/freeside/export -chown -R freeside /var/spool/freeside</pre> - <li>Create the necessary <a href="config.html">configuration files</a>. - <li>Run bin/fs-setup to create the database tables. + <li>Use Apache's <a href="http://www.apache.org/docs/suexec.html">suEXEC</a>. +<pre>cd /usr/local/apache/htdocs/freeside +chown -R freeside . +chmod 755 browse/*.cgi edit/*.cgi edit/process/*.cgi misc/*.cgi misc/process/*.cgi search/*.cgi view/*.cgi</pre> + <li>Use <a href="http://perl.apache.org/">mod_perl</a>. You should run a separate iteration of Apache[-SSL] as the freeside user. (Warning: The redirect method of CGI.pm 2.36 [as distributed with Perl 5.004_04] is broken under mod_perl. Downlaod the current version from <a href="http://www.perl.com/CPAN/modules/by-module/CGI">CPAN</a>. Apache 1.3.6 is also highly recommended because of signal handling problems in earlier versions.) +<pre>cd /usr/local/apache/htdocs/freeside +chown -R root . +chmod 755 browse/*.cgi edit/*.cgi edit/process/*.cgi misc/*.cgi misc/process/*.cgi search/*.cgi view/*.cgi</pre> + </ul> +<li>Create the necessary <a href="config.html">configuration files</a>. +<li>Create the `/usr/local/etc/freeside/counters.<i>datasrc</i>', and + `/usr/local/etc/freeside/export.<i>datasrc</i>' directories for each <i>datasrc</i> (owned by the freeside user). + <li>As the freeside user, run bin/fs-setup to create the database tables. </ul> </body> diff --git a/htdocs/docs/legacy.html b/htdocs/docs/legacy.html index 40e09cb3c..3ab21dab2 100644 --- a/htdocs/docs/legacy.html +++ b/htdocs/docs/legacy.html @@ -4,7 +4,7 @@ <body> <h1>Importing legacy data</h1> <ul> - <li><a name="svc_acct">bin/svc_acct.import</a> - Import `passwd', ( `shadow' or `master.passwd' ) and RADIUS `users'. Before running bin/svc_acct.import, you need <a href="http://rootwood.sisd.com/freeside/browse/part_svc.cgi">services</a> (with table svc_acct) as follows: + <li><a name="svc_acct">bin/svc_acct.import</a> - Import `passwd', ( `shadow' or `master.passwd' ) and RADIUS `users'. Before running bin/svc_acct.import, you need <a href="../browse/part_svc.cgi">services</a> (with table svc_acct) as follows: <ul> <li>Most accounts probably have entries in passwd and users (with Port-Limit nonexistant or 1) <li>Some accounts have entries in passwd and users, but with Port-Limit 2 (or more) @@ -13,7 +13,7 @@ <li>POP mail accounts have entries in passwd only, and have a particular shell. <li>Everything else in passwd is a shell account. </ul> - <li><a name="svc_acct_sm">bin/svc_acct_sm.import</a> - Import qmail ( `virtualdomains' and `rcpthosts' ), or sendmail ( `virtusertable' and `sendmail.cw' ) files. Before running bin/svc_acct_sm.import, you need <a href="http://rootwood.sisd.com/freeside/browse/part_svc.cgi">services</a> as follows: + <li><a name="svc_acct_sm">bin/svc_acct_sm.import</a> - Import qmail ( `virtualdomains' and `rcpthosts' ), or sendmail ( `virtusertable' and `sendmail.cw' ) files. Before running bin/svc_acct_sm.import, you need <a href="../browse/part_svc.cgi">services</a> as follows: <ul> <li>Domain (table svc_acct) <li>Mail alias (table svc_acct_sm) diff --git a/htdocs/docs/man/CGI.txt b/htdocs/docs/man/CGI.txt index 54f9b8a6a..c8eb4ff23 100644 --- a/htdocs/docs/man/CGI.txt +++ b/htdocs/docs/man/CGI.txt @@ -2,7 +2,7 @@ NAME FS::CGI - Subroutines for the web interface SYNOPSIS - use FS::CGI qw(header menubar idiot eidiot); + use FS::CGI qw(header menubar idiot eidiot popurl); print header( 'Title', '' ); print header( 'Title', menubar('item', 'URL', ... ) ); @@ -10,6 +10,9 @@ SYNOPSIS idiot "error message"; eidiot "error message"; + $url = popurl; #returns current url + $url = popurl(3); #three levels up + DESCRIPTION Provides a few common subroutines for the web interface. @@ -21,20 +24,35 @@ SUBROUTINES Returns an HTML menubar. idiot ERROR + This is depriciated. Don't use it. + Sends headers and an HTML error message. eidiot ERROR + This is depriciated. Don't use it. + Sends headers and an HTML error message, then exits. + popurl LEVEL + Returns current URL with LEVEL levels of path removed from + the end (default 0). + + table + Returns HTML tag for beginning a table. + + itable + Returns HTML tag for beginning an (invisible) table. + + ntable + This is getting silly. + BUGS Not OO. Not complete. - Uses CGI-modules instead of CGI.pm - SEE ALSO - the CGI::Base manpage + the CGI manpage, the CGI::Base manpage HISTORY subroutines for the HTML/CGI GUI, not properly OO. :( @@ -45,3 +63,36 @@ HISTORY pod ivan@sisd.com 98-sep-12 + $Log: CGI.txt,v $ + Revision 1.4 1999-04-08 13:39:31 ivan + convert from pod for 1.2.0 release + Revision 1.17 1999/02/07 09:59:43 ivan more + mod_perl fixes, and bugfixes Peter Wemm sent via email + + Revision 1.16 1999/01/25 12:26:05 ivan yet more mod_perl stuff + + Revision 1.15 1999/01/18 09:41:48 ivan all $cgi->header calls + now include ( '-expires' => 'now' ) for mod_perl (good idea + anyway) + + Revision 1.14 1999/01/18 09:22:37 ivan changes to track email + addresses for email invoicing + + Revision 1.12 1998/12/23 02:23:16 ivan popurl always has + trailing slash + + Revision 1.11 1998/11/12 07:43:54 ivan *** empty log message *** + + Revision 1.10 1998/11/12 01:53:47 ivan added table command + + Revision 1.9 1998/11/09 08:51:49 ivan bug squash + + Revision 1.7 1998/11/09 06:10:59 ivan added sub url + + Revision 1.6 1998/11/09 05:44:20 ivan *** empty log message *** + + Revision 1.4 1998/11/09 04:55:42 ivan support depriciated + CGI::Base as well as CGI.pm (for now) + + Revision 1.3 1998/11/08 10:50:19 ivan s/CGI::Base/CGI/; etc. + diff --git a/htdocs/docs/man/Conf.txt b/htdocs/docs/man/Conf.txt index c46c9ee6a..01b7cf5e6 100644 --- a/htdocs/docs/man/Conf.txt +++ b/htdocs/docs/man/Conf.txt @@ -4,8 +4,10 @@ NAME SYNOPSIS use FS::Conf; + $conf = new FS::Conf "/config/directory"; + + $FS::Conf::default_dir = "/config/directory"; $conf = new FS::Conf; - $conf = new FS::Conf "/non/standard/config/directory"; $dir = $conf->dir; @@ -19,8 +21,8 @@ DESCRIPTION METHODS new [ DIRECTORY ] - Create a new configuration object. Optionally, a non-default - directory may be specified. + Create a new configuration object. A directory arguement is + required if $FS::Conf::default_dir has not been set. dir Returns the directory. @@ -33,9 +35,6 @@ METHODS corresponding value is undefined. BUGS - The option to specify a non-default directory should probably be - removed. - Write access (with locking) should be implemented. SEE ALSO @@ -45,3 +44,14 @@ SEE ALSO HISTORY Ivan Kohler <ivan@sisd.com> 98-sep-6 + sub exists forgot to fetch $dir ivan@sisd.com 98-sep-27 + + $Log: Conf.txt,v $ + Revision 1.5 1999-04-08 13:39:31 ivan + convert from pod for 1.2.0 release + Revision 1.3 1999/03/29 01:29:33 ivan die + unless the configuration directory exists + + Revision 1.2 1998/11/13 04:08:44 ivan no default default_dir + (ironic) + diff --git a/htdocs/docs/man/Invoice.txt b/htdocs/docs/man/Invoice.txt index 17953d51d..d0ca37fd0 100644 --- a/htdocs/docs/man/Invoice.txt +++ b/htdocs/docs/man/Invoice.txt @@ -2,7 +2,7 @@ NAME FS::Invoice - Legacy stub SYNOPSIS - The functioanlity of FS::invoice has been integrated in + The functionality of FS::Invoice has been integrated in FS::cust_bill. HISTORY @@ -21,3 +21,7 @@ HISTORY =< 0 return address comes from /var/spool/freeside/conf/address ivan@sisd.com 98-jul-2 + pod ivan@sisd.com 98-sep-20something + + s/ISA/@ISA/ in use vars ivan@sisd.com 98-sep-27 + diff --git a/htdocs/docs/man/Record.txt b/htdocs/docs/man/Record.txt index 0accb65d1..1708e3c67 100644 --- a/htdocs/docs/man/Record.txt +++ b/htdocs/docs/man/Record.txt @@ -3,7 +3,7 @@ NAME SYNOPSIS use FS::Record; - use FS::Record qw(dbh fields hfields qsearch qsearchs dbdef); + use FS::Record qw(dbh fields qsearch qsearchs dbdef); $record = new FS::Record 'table', \%hash; $record = new FS::Record 'table', { 'column' => 'value', ... }; @@ -28,11 +28,14 @@ SYNOPSIS $hashref = $record->hashref; - $error = $record->add; + $error = $record->insert; + #$error = $record->add; #depriciated - $error = $record->del; + $error = $record->delete; + #$error = $record->del; #depriciated - $error = $new_record->rep($old_record); + $error = $new_record->replace($old_record); + #$error = $new_record->rep($old_record); #depriciated $value = $record->unique('column'); @@ -57,7 +60,8 @@ SYNOPSIS $fields = hfields('table'); if ( $fields->{Field} ) { # etc. - @fields = fields 'table'; + @fields = fields 'table'; #as a subroutine + @fields = $record->fields; #as a method call DESCRIPTION (Mostly) object-oriented interface to database records. Records @@ -65,28 +69,32 @@ DESCRIPTION as a base class for table-specific classes to inherit from, i.e. FS::cust_main. -METHODS - new TABLE, HASHREF +CONSTRUCTORS + new [ TABLE, ] HASHREF Creates a new record. It doesn't store it in the database, - though. See the section on "add" for that. + though. See the section on "insert" for that. Note that the object stores this hash reference, not a distinct copy of the hash it points to. You can ask the object for a copy with the *hash* method. + TABLE can only be omitted when a dervived class overrides + the table method. + qsearch TABLE, HASHREF Searches the database for all records matching (at least) the key/value pairs in HASHREF. Returns all the records - found as FS::Record objects. + found as `FS::TABLE' objects if that module is loaded (i.e. + via `use FS::cust_main;'), otherwise returns FS::Record + objects. qsearchs TABLE, HASHREF - Searches the database for a record matching (at least) the - key/value pairs in HASHREF, and returns the record found as - an FS::Record object. If more than one record matches, it - carps but returns the first. If this happens, you either - made a logic error in asking for a single item, or your data - is corrupted. + Same as qsearch, except that if more than one record + matches, it carps but returns the first. If this happens, + you either made a logic error in asking for a single item, + or your data is corrupted. +METHODS table Returns the table name. @@ -118,17 +126,29 @@ METHODS hashref Returns a reference to the column/value hash. - add Adds this record to the database. If there is an error, returns - the error, otherwise returns false. + insert + Inserts this record to the database. If there is an error, + returns the error, otherwise returns false. + + add Depriciated (use insert instead). - del Delete this record from the database. If there is an error, + delete + Delete this record from the database. If there is an error, returns the error, otherwise returns false. - rep OLD_RECORD + del Depriciated (use delete instead). + + replace OLD_RECORD Replace the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns false. + rep Depriciated (use replace instead). + + check + Not yet implemented, croaks. Derived classes should provide + a check method. + unique COLUMN Replaces COLUMN in record with a unique number. Called by the add method on primary keys and single-field unique @@ -184,6 +204,11 @@ METHODS ut_anything COLUMN Untaints arbitrary data. Be careful. + fields [ TABLE ] + This can be used as both a subroutine and a method call. It + returns a list of the columns in this record's table, or an + explicitly specified table. (See the dbdef_table manpage). + SUBROUTINES reload_dbdef([FILENAME]) Load a database definition (see the FS::dbdef manpage), @@ -207,9 +232,8 @@ SUBROUTINES It returns a hash-type list with the fields of this record's table set true. - fields TABLE - This returns a list of the columns in this record's - table (See the dbdef_table manpage). +VERSION + $Id: Record.txt,v 1.5 1999-04-08 13:39:31 ivan Exp $ BUGS This module should probably be renamed, since much of the @@ -236,7 +260,7 @@ BUGS ut_sqltype (like ut_varchar) should all be defined - A fallback check method should be provided with uses the + A fallback check method should be provided whith uses the dbdef. The ut_money method assumes money has two decimal digits. @@ -251,6 +275,9 @@ BUGS All the subroutines probably should be methods, here or elsewhere. + Probably should borrow/use some dbdef methods where + appropriate (like sub fields) + SEE ALSO the FS::dbdef manpage, the FS::UID manpage, the DBI manpage @@ -330,3 +357,49 @@ HISTORY added pod documentation ivan@sisd.com 98-sep-6 + ut_phonen got ''; at the end ivan@sisd.com 98-sep-27 + + $Log: Record.txt,v $ + Revision 1.5 1999-04-08 13:39:31 ivan + convert from pod for 1.2.0 release + Revision 1.15 1999/04/08 12:08:59 ivan + fix up PostgreSQL money fields so you can actually use them + as numbers. bah. + + Revision 1.14 1999/04/07 14:58:31 ivan more kludges to get + around different null/empty handling in Perl vs. MySQL vs. + PostgreSQL etc. + + Revision 1.13 1999/03/29 11:55:43 ivan eliminate warnings in + ut_money + + Revision 1.12 1999/01/25 12:26:06 ivan yet more mod_perl + stuff + + Revision 1.11 1999/01/18 09:22:38 ivan changes to track + email addresses for email invoicing + + Revision 1.10 1998/12/29 11:59:33 ivan mostly properly OO, + some work still to be done with svc_ stuff + + Revision 1.9 1998/11/21 07:26:45 ivan "Records identical" + carp tells us it is just a warning. + + Revision 1.8 1998/11/15 11:02:04 ivan bugsquash + + Revision 1.7 1998/11/15 10:56:31 ivan qsearch gets sames "IS + NULL" semantics as other WHERE clauses + + Revision 1.6 1998/11/15 05:31:03 ivan bugfix for new config + layout + + Revision 1.5 1998/11/13 09:56:51 ivan change configuration + file layout to support multiple distinct databases (with own + set of config files, export, etc.) + + Revision 1.4 1998/11/10 07:45:25 ivan doc clarification + + Revision 1.2 1998/11/07 05:17:18 ivan In sub new, Pg wrapper + for money fields from dbdef (FS::Record::fields $table), not + keys of supplied hashref. + diff --git a/htdocs/docs/man/UID.txt b/htdocs/docs/man/UID.txt index bf9f6b4bd..efe3b6670 100644 --- a/htdocs/docs/man/UID.txt +++ b/htdocs/docs/man/UID.txt @@ -6,10 +6,9 @@ SYNOPSIS use FS::UID qw(adminsuidsetup cgisuidsetup dbh datasrc getotaker checkeuid checkruid swapuid); - adminsuidsetup; + adminsuidsetup $user; - $cgi = new CGI::Base; - $cgi->get; + $cgi = new CGI; $dbh = cgisuidsetup($cgi); $dbh = dbh; @@ -20,20 +19,32 @@ DESCRIPTION Provides a hodgepodge of subroutines. SUBROUTINES - adminsuidsetup - Cleans the environment. Make sure the script is running as - freeside, or setuid freeside. Opens a connection to the - database. Swaps real and effective UIDs. Returns the DBI + adminsuidsetup USER + Sets the user to USER (see config.html from the base + documentation). Cleans the environment. Make sure the script + is running as freeside, or setuid freeside. Opens a + connection to the database. Swaps real and effective UIDs. + Runs any defined callbacks (see below). Returns the DBI database handle (usually you don't need this). + cgisuidsetup CGI_object + Stores the CGI (see the CGI manpage) object for later use. + (CGI::Base is depriciated) Runs adminsuidsetup. + + cgi Returns the CGI (see the CGI manpage) object. + dbh Returns the DBI database handle. datasrc Returns the DBI data source. getotaker - Returns the current Freeside user. Currently that means the - CGI REMOTE_USER, or 'freeside'. + Returns the current Freeside user. + + cgisetotaker + Sets and returns the CGI REMOTE_USER. $cgi should be defined + as a CGI.pm object. Support for CGI::Base and derived + classes is depriciated. checkeuid Returns true if effective UID is that of the freeside user. @@ -44,14 +55,39 @@ SUBROUTINES swapuid Swaps real and effective UIDs. + getsecrets [ USER ] + Sets the user to USER, if supplied. Sets and returns the DBI + datasource, username and password for this user from the + `/usr/local/etc/freeside/mapsecrets' file. + +CALLBACKS + Warning: this interface is likely to change in future releases. + + A package can install a callback to be run in adminsuidsetup by + putting a coderef into the hash %FS::UID::callback : + + $coderef = sub { warn "Hi, I'm returning your call!" }; + $FS::UID::callback{'Package::Name'}; + +VERSION + $Id: UID.txt,v 1.4 1999-04-08 13:39:31 ivan Exp $ + BUGS + Too many package-global variables. + Not OO. No capabilities yet. When mod_perl and Authen::DBI are implemented, cgisuidsetup will go away as well. + Goes through contortions to support non-OO syntax with multiple + datasrc's. + + Callbacks are inelegant. + SEE ALSO - the FS::Record manpage, the CGI::Base manpage, the DBI manpage + the FS::Record manpage, the CGI manpage, the DBI manpage, + config.html from the base documentation. HISTORY ivan@voicenet.com 97-jun-4 - 9 untaint otaker ivan@voicenet.com @@ -77,3 +113,28 @@ HISTORY pod, use FS::Conf, implemented cgisuidsetup as adminsuidsetup, inlined suidsetup ivan@sisd.com 98-sep-12 + $Log: UID.txt,v $ + Revision 1.4 1999-04-08 13:39:31 ivan + convert from pod for 1.2.0 release + Revision 1.8 1999/02/23 07:23:23 ivan oops, + don't comment out &swapuid in &adminsuidsetup! + + Revision 1.7 1999/01/18 09:22:40 ivan changes to track email + addresses for email invoicing + + Revision 1.6 1998/11/15 05:27:48 ivan bugfix for new + configuration layout + + Revision 1.5 1998/11/15 00:51:51 ivan eliminated some warnings + on certain fatal errors (well, it is less confusing) + + Revision 1.4 1998/11/13 09:56:52 ivan change configuration file + layout to support multiple distinct databases (with own set of + config files, export, etc.) + + Revision 1.3 1998/11/08 10:45:42 ivan got sub cgi for FS::CGI + + Revision 1.2 1998/11/08 09:38:43 ivan cgisuidsetup complains if + you pass it a isa CGI::Base instead of an isa CGI (first step in + migrating from CGI-modules to CGI.pm) + diff --git a/htdocs/docs/man/agent.txt b/htdocs/docs/man/agent.txt index b0317f6f7..13a4f0c4b 100644 --- a/htdocs/docs/man/agent.txt +++ b/htdocs/docs/man/agent.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::agent; - $record = create FS::agent \%hash; - $record = create FS::agent { 'column' => 'value' }; + $record = new FS::agent \%hash; + $record = new FS::agent { 'column' => 'value' }; $error = $record->insert; @@ -27,7 +27,7 @@ DESCRIPTION prog - For future use. freq - For future use. METHODS - create HASHREF + new HASHREF Creates a new agent. To add the agent to the database, see the section on "insert". @@ -49,9 +49,10 @@ METHODS there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: agent.txt,v 1.3 1999-04-08 13:39:31 ivan Exp $ +BUGS SEE ALSO the FS::Record manpage, the FS::agent_type manpage, the FS::cust_main manpage, schema.html from the base documentation. diff --git a/htdocs/docs/man/agent_type.txt b/htdocs/docs/man/agent_type.txt index ea1edec0c..5983fee88 100644 --- a/htdocs/docs/man/agent_type.txt +++ b/htdocs/docs/man/agent_type.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::agent_type; - $record = create FS::agent_type \%hash; - $record = create FS::agent_type { 'column' => 'value' }; + $record = new FS::agent_type \%hash; + $record = new FS::agent_type { 'column' => 'value' }; $error = $record->insert; @@ -27,7 +27,7 @@ DESCRIPTION typenum - primary key (assigned automatically for new agent types) atype - Text name of this agent type METHODS - create HASHREF + new HASHREF Creates a new agent type. To add the agent type to the database, see the section on "insert". @@ -49,9 +49,10 @@ METHODS If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: agent_type.txt,v 1.3 1999-04-08 13:39:31 ivan Exp $ +BUGS SEE ALSO the FS::Record manpage, the FS::agent manpage, the FS::type_pkgs manpage, the FS::cust_main manpage, the FS::part_pkg manpage, @@ -70,3 +71,9 @@ HISTORY pod, added check in delete ivan@sisd.com 98-sep-21 + $Log: agent_type.txt,v $ + Revision 1.3 1999-04-08 13:39:31 ivan + convert from pod for 1.2.0 release + Revision 1.2 1998/12/29 11:59:35 ivan + mostly properly OO, some work still to be done with svc_ stuff + diff --git a/htdocs/docs/man/cust_bill.txt b/htdocs/docs/man/cust_bill.txt index 9762dd3ca..c11840117 100644 --- a/htdocs/docs/man/cust_bill.txt +++ b/htdocs/docs/man/cust_bill.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::cust_bill; - $record = create FS::cust_bill \%hash; - $record = create FS::cust_bill { 'column' => 'value' }; + $record = new FS::cust_bill \%hash; + $record = new FS::cust_bill { 'column' => 'value' }; $error = $record->insert; @@ -41,7 +41,7 @@ DESCRIPTION printed - how many times this invoice has been printed automatically (see the section on "collect" in the FS::cust_main manpage). METHODS - create HASHREF + new HASHREF Creates a new invoice. To add the invoice to the database, see the section on "insert". Invoices are normally created by calling the bill method of a customer object (see the @@ -105,24 +105,19 @@ METHODS manpage. Also see the Time::Local manpage and the Date::Parse manpage for conversion functions. +VERSION + $Id: cust_bill.txt,v 1.4 1999-04-08 13:39:31 ivan Exp $ + BUGS The delete method. - It doesn't properly override FS::Record yet. - - print_text formatting (and some logic :/) is in source as a - format declaration, which needs to be slurped in from a file. - the fork is rather kludgy as well. It could be cleaned with - swrite from man perlform, and the picture could be put in a - /var/spool/freeside/conf file. Also number of lines ($=). + print_text formatting (and some logic :/) is in source, but + needs to be slurped in from a file. Also number of lines ($=). missing print_ps for a nice postscript copy (maybe HylaFAX- cover-page-style or something similar so the look can be completely customized?) - There is an off-by-one error in print_text which causes a visual - error: "Page 1 of 2" printed on some single-page invoices? - SEE ALSO the FS::Record manpage, the FS::cust_main manpage, the FS::cust_pay manpage, the FS::cust_bill_pkg manpage, the @@ -138,3 +133,25 @@ HISTORY pod, ingegrate with FS::Invoice ivan@sisd.com 98-sep-20 + $Log: cust_bill.txt,v $ + Revision 1.4 1999-04-08 13:39:31 ivan + convert from pod for 1.2.0 release + Revision 1.7 1999/02/09 09:55:05 ivan + invoices show line items for each service in a package (see the + label method of FS::cust_svc) + + Revision 1.6 1999/01/25 12:26:07 ivan yet more mod_perl stuff + + Revision 1.5 1999/01/18 21:58:03 ivan esthetic: eq and ne were + used in a few places instead of == and != + + Revision 1.4 1998/12/29 11:59:36 ivan mostly properly OO, some + work still to be done with svc_ stuff + + Revision 1.3 1998/11/13 09:56:53 ivan change configuration file + layout to support multiple distinct databases (with own set of + config files, export, etc.) + + Revision 1.2 1998/11/07 10:24:24 ivan don't use depriciated + FS::Bill and FS::Invoice, other miscellania + diff --git a/htdocs/docs/man/cust_bill_pkg.txt b/htdocs/docs/man/cust_bill_pkg.txt index 1ca4b8cca..d725c941e 100644 --- a/htdocs/docs/man/cust_bill_pkg.txt +++ b/htdocs/docs/man/cust_bill_pkg.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::cust_bill_pkg; - $record = create FS::cust_bill_pkg \%hash; - $record = create FS::cust_bill_pkg { 'column' => 'value' }; + $record = new FS::cust_bill_pkg \%hash; + $record = new FS::cust_bill_pkg { 'column' => 'value' }; $error = $record->insert; @@ -32,7 +32,7 @@ DESCRIPTION functions. METHODS - create HASHREF + new HASHREF Creates a new line item. To add the line item to the database, see the section on "insert". Line items are normally created by calling the bill method of a customer @@ -57,9 +57,10 @@ METHODS there is an error, returns the error, otherwise returns false. Called by the insert method. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: cust_bill_pkg.txt,v 1.3 1999-04-08 13:39:31 ivan Exp $ +BUGS SEE ALSO the FS::Record manpage, the FS::cust_bill manpage, the FS::cust_pkg manpage, the FS::cust_main manpage, schema.html diff --git a/htdocs/docs/man/cust_credit.txt b/htdocs/docs/man/cust_credit.txt index 84591ee81..c26c1fbd6 100644 --- a/htdocs/docs/man/cust_credit.txt +++ b/htdocs/docs/man/cust_credit.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::cust_credit; - $record = create FS::cust_credit \%hash; - $record = create FS::cust_credit { 'column' => 'value' }; + $record = new FS::cust_credit \%hash; + $record = new FS::cust_credit { 'column' => 'value' }; $error = $record->insert; @@ -30,7 +30,7 @@ DESCRIPTION otaker - order taker (assigned automatically, see the FS::UID manpage) reason - text METHODS - create HASHREF + new HASHREF Creates a new credit. To add the credit to the database, see the section on "insert". @@ -59,11 +59,12 @@ METHODS there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. +VERSION + $Id: cust_credit.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ + BUGS The delete method. - It doesn't properly override FS::Record yet. - SEE ALSO the FS::Record manpage, the FS::cust_refund manpage, the FS::cust_bill manpage, schema.html from the base documentation. @@ -73,3 +74,15 @@ HISTORY pod, otaker from FS::UID ivan@sisd.com 98-sep-21 + $Log: cust_credit.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.4 1999/01/25 12:26:08 ivan + yet more mod_perl stuff + + Revision 1.3 1999/01/18 21:58:04 ivan esthetic: eq and ne were + used in a few places instead of == and != + + Revision 1.2 1998/12/29 11:59:38 ivan mostly properly OO, some + work still to be done with svc_ stuff + diff --git a/htdocs/docs/man/cust_main.txt b/htdocs/docs/man/cust_main.txt index df7848744..bef2b9d94 100644 --- a/htdocs/docs/man/cust_main.txt +++ b/htdocs/docs/man/cust_main.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::cust_main; - $record = create FS::cust_main \%hash; - $record = create FS::cust_main { 'column' => 'value' }; + $record = new FS::cust_main \%hash; + $record = new FS::cust_main { 'column' => 'value' }; $error = $record->insert; @@ -58,7 +58,7 @@ DESCRIPTION tax - tax exempt, empty or `Y' otaker - order taker (assigned automatically, see the FS::UID manpage) METHODS - create HASHREF + new HASHREF Creates a new customer. To add the customer to the database, see the section on "insert". @@ -151,24 +151,52 @@ METHODS Returns the balance for this customer (total owed minus total credited). -BUGS - The delete method. + invoicing_list [ ARRAYREF ] + If an arguement is given, sets these email addresses as + invoice recipients (see the FS::cust_main_invoice manpage). + Errors are not fatal and are not reported (except as + warnings), so use check_invoicing_list first. + + Returns a list of email addresses (with svcnum entries + expanded). + + Note: You can clear the invoicing list by passing an empty + ARRAYREF. You can check it without disturbing anything by + passing nothing. - It doesn't properly override FS::Record yet. + This interface may change in the future. - hfields should be removed. + check_invoicing_list ARRAYREF + Checks these arguements as valid input for the + invoicing_list method. If there is an error, returns the + error, otherwise returns false. + +VERSION + $Id: cust_main.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $ + +BUGS + The delete method. Bill and collect options should probably be passed as references instead of a list. CyberCash v2 forces us to define some variables in package main. + There should probably be a configuration file with a list of + allowed credit card types. + + CyberCash is the only processor. + + No multiple currency support (probably a larger project than + just this module). + SEE ALSO the FS::Record manpage, the FS::cust_pkg manpage, the FS::cust_bill manpage, the FS::cust_credit manpage the FS::cust_pay_batch manpage, the FS::agent manpage, the FS::part_referral manpage, the FS::cust_main_county manpage, the - FS::UID manpage, schema.html from the base documentation. + FS::cust_main_invoice manpage, the FS::UID manpage, schema.html + from the base documentation. HISTORY ivan@voicenet.com 97-jul-28 @@ -198,3 +226,53 @@ HISTORY cybercash v3 support, don't need to import FS::UID::{datasrc,checkruid} ivan@sisd.com 98-sep-19-21 + $Log: cust_main.txt,v $ + Revision 1.4 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.16 1999/04/07 14:32:19 ivan + more &invoicing_list logic to skip searches when there is no + custnum + + Revision 1.15 1999/04/07 13:41:54 ivan in &invoicing_list, don't + search if there's no custnum yet + + Revision 1.14 1999/03/29 12:06:15 ivan buglet in email invoices + fixed + + Revision 1.13 1999/02/28 20:09:03 ivan allow spaces in zip + codes, for (at least) canada. pointed out by Clayton Gray + <clgray@bcgroup.net> + + Revision 1.12 1999/02/27 21:24:22 ivan parse paydate correctly + for cybercash + + Revision 1.11 1999/02/23 08:09:27 ivan beginnings of one-screen + new customer entry and some other miscellania + + Revision 1.10 1999/01/25 12:26:09 ivan yet more mod_perl stuff + + Revision 1.9 1999/01/18 09:22:41 ivan changes to track email + addresses for email invoicing + + Revision 1.8 1998/12/29 11:59:39 ivan mostly properly OO, some + work still to be done with svc_ stuff + + Revision 1.7 1998/12/16 09:58:52 ivan library support for + editing email invoice destinations (not in sub collect yet) + + Revision 1.6 1998/11/18 09:01:42 ivan i18n! i18n! + + Revision 1.5 1998/11/15 11:23:14 ivan use FS::table_name for all + searches to eliminate warnings, emit state/county when they + don't match + + Revision 1.4 1998/11/15 05:30:48 ivan bugfix for new config + layout + + Revision 1.3 1998/11/13 09:56:54 ivan change configuration file + layout to support multiple distinct databases (with own set of + config files, export, etc.) + + Revision 1.2 1998/11/07 10:24:25 ivan don't use depriciated + FS::Bill and FS::Invoice, other miscellania + diff --git a/htdocs/docs/man/cust_main_county.txt b/htdocs/docs/man/cust_main_county.txt index 8e99397cc..9a4a60e33 100644 --- a/htdocs/docs/man/cust_main_county.txt +++ b/htdocs/docs/man/cust_main_county.txt @@ -5,8 +5,8 @@ NAME SYNOPSIS use FS::cust_main_county; - $record = create FS::cust_main_county \%hash; - $record = create FS::cust_main_county { 'column' => 'value' }; + $record = new FS::cust_main_county \%hash; + $record = new FS::cust_main_county { 'column' => 'value' }; $error = $record->insert; @@ -24,9 +24,10 @@ DESCRIPTION taxnum - primary key (assigned automatically for new tax rates) state county + country tax - percentage METHODS - create HASHREF + new HASHREF Creates a new tax rate. To add the tax rate to the database, see the section on "insert". @@ -48,11 +49,10 @@ METHODS there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. -BUGS - It doesn't properly override FS::Record yet. - - A country field (and possibly a currency field) should be added. +VERSION + $Id: cust_main_county.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ +BUGS SEE ALSO the FS::Record manpage, the FS::cust_main manpage, the FS::cust_bill manpage, schema.html from the base documentation. @@ -65,3 +65,12 @@ HISTORY pod ivan@sisd.com 98-sep-21 + $Log: cust_main_county.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.3 1998/12/29 11:59:41 + ivan mostly properly OO, some work still to be done with svc_ + stuff + + Revision 1.2 1998/11/18 09:01:43 ivan i18n! i18n! + diff --git a/htdocs/docs/man/cust_main_invoice.txt b/htdocs/docs/man/cust_main_invoice.txt new file mode 100644 index 000000000..5d50a9f26 --- /dev/null +++ b/htdocs/docs/man/cust_main_invoice.txt @@ -0,0 +1,98 @@ +NAME + FS::cust_main_invoice - Object methods for cust_main_invoice + records + +SYNOPSIS + use FS::cust_main_invoice; + + $record = new FS::cust_main_invoice \%hash; + $record = new FS::cust_main_invoice { 'column' => 'value' }; + + $error = $record->insert; + + $error = $new_record->replace($old_record); + + $error = $record->delete; + + $error = $record->check; + + $email_address = $record->address; + +DESCRIPTION + An FS::cust_main_invoice object represents an invoice + destination. FS::cust_main_invoice inherits from FS::Record. The + following fields are currently supported: + + destnum - primary key + custnum - customer (see the FS::cust_main manpage) + dest - Invoice destination: If numeric, a <a href="#svc_acct">svcnum</a>, if string, a literal email address, or `POST' to enable mailing (the default if no cust_main_invoice records exist) +METHODS + new HASHREF + Creates a new invoice destination. To add the invoice + destination to the database, see the section on "insert". + + Note that this stores the hash reference, not a distinct + copy of the hash it points to. You can ask the object for a + copy with the *hash* method. + + insert + Adds this record to the database. If there is an error, + returns the error, otherwise returns false. + + delete + Delete this record from the database. + + replace OLD_RECORD + Replaces the OLD_RECORD with this one in the database. If + there is an error, returns the error, otherwise returns + false. + + check + Checks all fields to make sure this is a valid invoice + destination. If there is an error, returns the error, + otherwise returns false. Called by the insert and repalce + methods. + + checkdest + Checks the dest field only. + + address + Returns the literal email address for this record (or + `POST'). + +VERSION + $Id: cust_main_invoice.txt,v 1.1 1999-04-08 13:39:32 ivan Exp $ + +BUGS +SEE ALSO + the FS::Record manpage, the FS::cust_main manpage + +HISTORY + ivan@voicenet.com 97-jul-1 + + added hfields ivan@sisd.com 97-nov-13 + + $Log: cust_main_invoice.txt,v $ + Revision 1.1 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.6 1999/01/25 12:26:10 + ivan yet more mod_perl stuff + + Revision 1.5 1999/01/18 21:58:05 ivan esthetic: eq and ne were + used in a few places instead of == and != + + Revision 1.4 1999/01/18 09:22:42 ivan changes to track email + addresses for email invoicing + + Revision 1.3 1998/12/29 11:59:42 ivan mostly properly OO, some + work still to be done with svc_ stuff + + Revision 1.2 1998/12/16 09:58:53 ivan library support for + editing email invoice destinations (not in sub collect yet) + + Revision 1.1 1998/12/16 07:40:02 ivan new table + + Revision 1.3 1998/11/15 04:33:00 ivan updates for newest versoin + + Revision 1.2 1998/11/15 03:48:49 ivan update for current version + diff --git a/htdocs/docs/man/cust_pay.txt b/htdocs/docs/man/cust_pay.txt index 9f28d0822..14843d022 100644 --- a/htdocs/docs/man/cust_pay.txt +++ b/htdocs/docs/man/cust_pay.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::cust_pay; - $record = create FS::cust_pay \%hash; - $record = create FS::cust_pay { 'column' => 'value' }; + $record = new FS::cust_pay \%hash; + $record = new FS::cust_pay { 'column' => 'value' }; $error = $record->insert; @@ -29,7 +29,7 @@ DESCRIPTION payinfo - card number, P.O.#, or comp issuer (4-8 lowercase alphanumerics; think username) paybatch - text field for tracking card processing METHODS - create HASHREF + new HASHREF Creates a new payment. To add the payment to the databse, see the section on "insert". @@ -48,9 +48,10 @@ METHODS there is an error, returns the error, otherwise returns false. Called by the insert method. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: cust_pay.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ +BUGS Delete and replace methods. SEE ALSO @@ -64,3 +65,12 @@ HISTORY pod ivan@sisd.com 98-sep-21 + $Log: cust_pay.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.3 1999/01/25 12:26:11 ivan yet + more mod_perl stuff + + Revision 1.2 1998/12/29 11:59:43 ivan mostly properly OO, some + work still to be done with svc_ stuff + diff --git a/htdocs/docs/man/cust_pay_batch.txt b/htdocs/docs/man/cust_pay_batch.txt new file mode 100644 index 000000000..2d6267843 --- /dev/null +++ b/htdocs/docs/man/cust_pay_batch.txt @@ -0,0 +1,96 @@ +NAME + FS::cust_pay_batch - Object methods for batch cards + +SYNOPSIS + use FS::cust_pay_batch; + + $record = new FS::cust_pay_batch \%hash; + $record = new FS::cust_pay_batch { 'column' => 'value' }; + + $error = $record->insert; + + $error = $new_record->replace($old_record); + + $error = $record->delete; + + $error = $record->check; + +DESCRIPTION + An FS::cust_pay_batch object represents a credit card + transaction ready to be batched (sent to a processor). + FS::cust_pay_batch inherits from FS::Record. Typically called by + the collect method of an FS::cust_main object. The following + fields are currently supported: + + trancode - 77 for charges + cardnum + exp - card expiration + amount + invnum - invoice + custnum - customer + payname - name on card + first - name + last - name + address1 + address2 + city + state + zip + country +METHODS + new HASHREF + Creates a new record. To add the record to the database, see + the section on "insert". + + Note that this stores the hash reference, not a distinct + copy of the hash it points to. You can ask the object for a + copy with the *hash* method. + + insert + Adds this record to the database. If there is an error, + returns the error, otherwise returns false. + + delete + Delete this record from the database. If there is an error, + returns the error, otherwise returns false. + + replace OLD_RECORD + #inactive # #Replaces the OLD_RECORD with this one in the + database. If there is an error, #returns the error, + otherwise returns false. + + check + Checks all fields to make sure this is a valid transaction. + If there is an error, returns the error, otherwise returns + false. Called by the insert and repalce methods. + +VERSION + $Id: cust_pay_batch.txt,v 1.1 1999-04-08 13:39:32 ivan Exp $ + +BUGS + There should probably be a configuration file with a list of + allowed credit card types. + +SEE ALSO + the FS::cust_main manpage, the FS::Record manpage + +HISTORY + ivan@voicenet.com 97-jul-1 + + added hfields ivan@sisd.com 97-nov-13 + + $Log: cust_pay_batch.txt,v $ + Revision 1.1 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.3 1998/12/29 11:59:44 + ivan mostly properly OO, some work still to be done with svc_ + stuff + + Revision 1.2 1998/11/18 09:01:44 ivan i18n! i18n! + + Revision 1.1 1998/11/15 05:19:58 ivan long overdue + + Revision 1.3 1998/11/15 04:33:00 ivan updates for newest versoin + + Revision 1.2 1998/11/15 03:48:49 ivan update for current version + diff --git a/htdocs/docs/man/cust_pkg.txt b/htdocs/docs/man/cust_pkg.txt index 5409083d8..395403192 100644 --- a/htdocs/docs/man/cust_pkg.txt +++ b/htdocs/docs/man/cust_pkg.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::cust_pkg; - $record = create FS::cust_pkg \%hash; - $record = create FS::cust_pkg { 'column' => 'value' }; + $record = new FS::cust_pkg \%hash; + $record = new FS::cust_pkg { 'column' => 'value' }; $error = $record->insert; @@ -21,6 +21,10 @@ SYNOPSIS $error = $record->unsuspend; + $part_pkg = $record->part_pkg; + + @labels = $record->labels; + $error = FS::cust_pkg::order( $custnum, \@pkgparts ); $error = FS::cust_pkg::order( $custnum, \@pkgparts, \@remove_pkgnums ] ); @@ -44,7 +48,7 @@ DESCRIPTION conversion functions. METHODS - create HASHREF + new HASHREF Create a new billing item. To add the item to the database, see the section on "insert". @@ -53,13 +57,26 @@ METHODS If there is an error, returns the error, otherwise returns false. + sub insert { my $self = shift; + + # custnum might not have have been defined in sub check (for one-shot new + # customers), so check it here instead + + my $error = $self->ut_number('custnum'); + return $error if $error + + return "Unknown customer" + unless qsearchs( 'cust_main', { 'custnum' => $self->custnum } ); + + $self->SUPER::insert; + + } + delete Currently unimplemented. You don't want to delete billing items, because there would then be no record the customer ever purchased the item. Instead, see the cancel method. - sub delete { return "Can't delete cust_pkg records!"; } - replace OLD_RECORD Replaces the OLD_RECORD with this one in the database. If there is an error, returns the error, otherwise returns @@ -68,7 +85,8 @@ METHODS Currently, custnum, setup, bill, susp, expire, and cancel may be changed. - pkgpart may not be changed, but see the order subroutine. + Changing pkgpart may have disasterous effects. See the order + subroutine. setup and bill are normally updated by calling the bill method of a customer object (see the FS::cust_main manpage). @@ -108,6 +126,15 @@ METHODS If there is an error, returns the error, otherwise returns false. + part_pkg + Returns the definition for this billing item, as an + FS::part_pkg object (see L<FS::part_pkg). + + labels + Returns a list of lists, calling the label method for all + services (see the FS::cust_svc manpage) of this billing + item. + SUBROUTINES order CUSTNUM, PKGPARTS_ARYREF, [ REMOVE_PKGNUMS_ARYREF ] CUSTNUM is a customer (see the FS::cust_main manpage) @@ -122,9 +149,10 @@ SUBROUTINES items. An error is returned if this is not possible (see the FS::pkg_svc manpage). -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: cust_pkg.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $ +BUGS sub order is not OO. Perhaps it should be moved to FS::cust_main and made so? @@ -135,6 +163,13 @@ BUGS defines a standard method to pass dates to the recur_prog expression, it should do so. + FS::svc_acct, FS::svc_acct_sm, and FS::svc_domain are loaded via + 'use' at compile time, rather than via 'require' in sub { setup, + suspend, unsuspend, cancel } because they use %FS::UID::callback + to load configuration values. Probably need a subroutine which + decides what to do based on whether or not we've fetched the + user yet, rather than a hash. See FS::UID and the TODO. + SEE ALSO the FS::Record manpage, the FS::cust_main manpage, the FS::part_pkg manpage, the FS::cust_svc manpage , the FS::pkg_svc @@ -148,3 +183,30 @@ HISTORY pod ivan@sisd.com 98-sep-21 + $Log: cust_pkg.txt,v $ + Revision 1.4 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.9 1999/03/29 01:11:51 ivan use + FS::type_pkgs + + Revision 1.8 1999/03/25 13:48:14 ivan allow empty custnum in sub + check (but call that an error in sub insert), for one-screen new + customer entry + + Revision 1.7 1999/02/09 09:55:06 ivan invoices show line items + for each service in a package (see the label method of + FS::cust_svc) + + Revision 1.6 1999/01/25 12:26:12 ivan yet more mod_perl stuff + + Revision 1.5 1999/01/18 21:58:07 ivan esthetic: eq and ne were + used in a few places instead of == and != + + Revision 1.4 1998/12/29 11:59:45 ivan mostly properly OO, some + work still to be done with svc_ stuff + + Revision 1.3 1998/11/15 13:01:35 ivan allow pkgpart changing + (for per-customer custom pricing). warn about it in doc + + Revision 1.2 1998/11/12 03:42:45 ivan added label method + diff --git a/htdocs/docs/man/cust_refund.txt b/htdocs/docs/man/cust_refund.txt index 392a0b57a..a982ca610 100644 --- a/htdocs/docs/man/cust_refund.txt +++ b/htdocs/docs/man/cust_refund.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::cust_refund; - $record = create FS::cust_refund \%hash; - $record = create FS::cust_refund { 'column' => 'value' }; + $record = new FS::cust_refund \%hash; + $record = new FS::cust_refund { 'column' => 'value' }; $error = $record->insert; @@ -28,7 +28,7 @@ DESCRIPTION payinfo - card number, P.O.#, or comp issuer (4-8 lowercase alphanumerics; think username) otaker - order taker (assigned automatically, see the FS::UID manpage) METHODS - create HASHREF + new HASHREF Creates a new refund. To add the refund to the database, see the section on "insert". @@ -47,9 +47,10 @@ METHODS there is an error, returns the error, otherwise returns false. Called by the insert method. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: cust_refund.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ +BUGS Delete and replace methods. SEE ALSO @@ -64,3 +65,12 @@ HISTORY pod and finish up ivan@sisd.com 98-sep-21 + $Log: cust_refund.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.3 1999/01/25 12:26:13 ivan + yet more mod_perl stuff + + Revision 1.2 1998/12/29 11:59:46 ivan mostly properly OO, some + work still to be done with svc_ stuff + diff --git a/htdocs/docs/man/cust_svc.txt b/htdocs/docs/man/cust_svc.txt index d863ea852..206d9d34b 100644 --- a/htdocs/docs/man/cust_svc.txt +++ b/htdocs/docs/man/cust_svc.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::cust_svc; - $record = create FS::cust_svc \%hash - $record = create FS::cust_svc { 'column' => 'value' }; + $record = new FS::cust_svc \%hash + $record = new FS::cust_svc { 'column' => 'value' }; $error = $record->insert; @@ -15,6 +15,8 @@ SYNOPSIS $error = $record->check; + ($label, $value) = $record->label; + DESCRIPTION An FS::cust_svc represents a service. FS::cust_svc inherits from FS::Record. The following fields are currently supported: @@ -23,7 +25,7 @@ DESCRIPTION pkgnum - Package (see the FS::cust_pkg manpage) svcpart - Service definition (see the FS::part_svc manpage) METHODS - create HASHREF + new HASHREF Creates a new service. To add the refund to the database, see the section on "insert". Services are normally created by creating FS::svc_ objects (see the FS::svc_acct manpage, @@ -51,12 +53,24 @@ METHODS there is an error, returns the error, otehrwise returns false. Called by the insert and replace methods. + label + Returns a list consisting of: - The name of this service + (from part_svc) - A meaningful identifier (username, domain, + or mail alias) - The table name (i.e. svc_domain) for this + service + +VERSION + $Id: cust_svc.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $ + BUGS Behaviour of changing the svcpart of cust_svc records is undefined and should possibly be prohibited, and pkg_svc records are not checked. - pkg_svc records are not checket in general (here). + pkg_svc records are not checked in general (here). + + Deleting this record doesn't check or delete the svc_* record + associated with this record. SEE ALSO the FS::Record manpage, the FS::cust_pkg manpage, the @@ -70,3 +84,16 @@ HISTORY pod ivan@sisd.com 98-sep-21 + $Log: cust_svc.txt,v $ + Revision 1.4 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.5 1998/12/29 11:59:47 ivan + mostly properly OO, some work still to be done with svc_ stuff + + Revision 1.4 1998/11/12 07:58:15 ivan added svcdb to label + + Revision 1.3 1998/11/12 03:45:38 ivan use FS::table_name for all + tables qsearch()'ed + + Revision 1.2 1998/11/12 03:32:46 ivan added label method + diff --git a/htdocs/docs/man/dbdef_column.txt b/htdocs/docs/man/dbdef_column.txt index 93e239517..6747a328c 100644 --- a/htdocs/docs/man/dbdef_column.txt +++ b/htdocs/docs/man/dbdef_column.txt @@ -46,16 +46,17 @@ METHODS line [ $datasrc ] Returns an SQL column definition. - If passed a DBI $datasrc specifying the DBD::mysql manpage, - will use MySQL-specific syntax. Non-standard syntax for - other engines (if applicable) may also be supported in the - future. + If passed a DBI $datasrc specifying the DBD::mysql manpage + or the DBD::Pg manpage, will use engine-specific syntax. BUGS SEE ALSO the FS::dbdef_table manpage, the FS::dbdef manpage, the DBI manpage +VERSION + $Id: dbdef_column.txt,v 1.5 1999-04-08 13:39:32 ivan Exp $ + HISTORY class for dealing with column definitions @@ -67,3 +68,12 @@ HISTORY mySQL-specific hack for null (what should be default?) ivan@sisd.com 98-jun-2 + $Log: dbdef_column.txt,v $ + Revision 1.5 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.3 1998/10/13 13:04:17 ivan + fixed doc to indicate Pg specific syntax too + + Revision 1.2 1998/10/12 23:40:28 ivan added Pg-specific + behaviour in sub line + diff --git a/htdocs/docs/man/dbdef_table.txt b/htdocs/docs/man/dbdef_table.txt index 25e010d8b..1a1887156 100644 --- a/htdocs/docs/man/dbdef_table.txt +++ b/htdocs/docs/man/dbdef_table.txt @@ -75,6 +75,9 @@ SEE ALSO FS::dbdef_index manpage, the FS::dbdef_unique manpage, the DBI manpage +VERSION + $Id: dbdef_table.txt,v 1.5 1999-04-08 13:39:32 ivan Exp $ + HISTORY class for dealing with table definitions @@ -92,3 +95,9 @@ HISTORY pod ivan@sisd.com 98-sep-24 + $Log: dbdef_table.txt,v $ + Revision 1.5 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.2 1998/10/14 07:05:06 ivan + 1.1.4 release, fix postgresql + diff --git a/htdocs/docs/man/index.html b/htdocs/docs/man/index.html index 4f33dd485..79fda2e04 100644 --- a/htdocs/docs/man/index.html +++ b/htdocs/docs/man/index.html @@ -11,7 +11,9 @@ <li><a href="cust_credit.txt">FS::cust_credit</a> <li><a href="cust_main.txt">FS::cust_main</a> <li><a href="cust_main_county.txt">FS::cust_main_county</a> +<li><a href="cust_main_invoice.txt">FS::cust_main_invoice</a> <li><a href="cust_pay.txt">FS::cust_pay</a> +<li><a href="cust_pay_batch.txt">FS::cust_pay_batch</a> <li><a href="cust_pkg.txt">FS::cust_pkg</a> <li><a href="cust_refund.txt">FS::cust_refund</a> <li><a href="cust_svc.txt">FS::cust_svc</a> @@ -19,6 +21,7 @@ <li><a href="part_referral.txt">FS::part_referral</a> <li><a href="part_svc.txt">FS::part_svc</a> <li><a href="pkg_svc.txt">FS::pkg_svc</a> +<li><a href="svc_Common.txt">FS::svc_Common</a> <li><a href="svc_acct.txt">FS::svc_acct</a> <li><a href="svc_acct_pop.txt">FS::svc_acct_pop</a> <li><a href="svc_acct_sm.txt">FS::svc_acct_sm</a> diff --git a/htdocs/docs/man/part_pkg.txt b/htdocs/docs/man/part_pkg.txt index dc1bce423..02aa109a0 100644 --- a/htdocs/docs/man/part_pkg.txt +++ b/htdocs/docs/man/part_pkg.txt @@ -4,8 +4,10 @@ NAME SYNOPSIS use FS::part_pkg; - $record = create FS::part_pkg \%hash - $record = create FS::part_pkg { 'column' => 'value' }; + $record = new FS::part_pkg \%hash + $record = new FS::part_pkg { 'column' => 'value' }; + + $custom_record = $template_record->clone; $error = $record->insert; @@ -16,7 +18,7 @@ SYNOPSIS $error = $record->check; DESCRIPTION - An FS::part_pkg represents a billing item definition. + An FS::part_pkg object represents a billing item definition. FS::part_pkg inherits from FS::Record. The following fields are currently supported: @@ -31,11 +33,18 @@ DESCRIPTION are not yet defined. METHODS - create HASHREF + new HASHREF Creates a new billing item definition. To add the billing item definition to the database, see the section on "insert". + clone + An alternate constructor. Creates a new billing item + definition by duplicating an existing definition. A new + pkgpart is assigned and `(CUSTOM) ' is prepended to the + comment field. To add the billing item definition to the + database, see the section on "insert". + insert Adds this billing item definition to the database. If there is an error, returns the error, otherwise returns false. @@ -53,6 +62,9 @@ METHODS otherwise returns false. Called by the insert and replace methods. +VERSION + $Id: part_pkg.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ + BUGS It doesn't properly override FS::Record yet. @@ -71,3 +83,11 @@ HISTORY pod ivan@sisd.com 98-sep-21 + $Log: part_pkg.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.5 1998/12/31 01:04:16 ivan doc + + Revision 1.3 1998/11/15 13:00:15 ivan bugfix in clone method, + clone method doc clarification + diff --git a/htdocs/docs/man/part_referral.txt b/htdocs/docs/man/part_referral.txt index 534996323..fbc141c45 100644 --- a/htdocs/docs/man/part_referral.txt +++ b/htdocs/docs/man/part_referral.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::part_referral; - $record = create FS::part_referral \%hash - $record = create FS::part_referral { 'column' => 'value' }; + $record = new FS::part_referral \%hash + $record = new FS::part_referral { 'column' => 'value' }; $error = $record->insert; @@ -25,7 +25,7 @@ DESCRIPTION refnum - primary key (assigned automatically for new referrals) referral - Text name of this referral METHODS - create HASHREF + new HASHREF Creates a new referral. To add the referral to the database, see the section on "insert". @@ -45,9 +45,10 @@ METHODS there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: part_referral.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ +BUGS The delete method is unimplemented. SEE ALSO @@ -61,3 +62,9 @@ HISTORY pod ivan@sisd.com 98-sep-21 + $Log: part_referral.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.2 1998/12/29 11:59:49 ivan + mostly properly OO, some work still to be done with svc_ stuff + diff --git a/htdocs/docs/man/part_svc.txt b/htdocs/docs/man/part_svc.txt index 680944e2f..71af2c4f4 100644 --- a/htdocs/docs/man/part_svc.txt +++ b/htdocs/docs/man/part_svc.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::part_svc; - $record = create FS::part_referral \%hash - $record = create FS::part_referral { 'column' => 'value' }; + $record = new FS::part_referral \%hash + $record = new FS::part_referral { 'column' => 'value' }; $error = $record->insert; @@ -27,7 +27,7 @@ DESCRIPTION *svcdb*__*field* - Default or fixed value for *field* in *svcdb*. *svcdb*__*field*_flag - defines *svcdb*__*field* action: null, `D' for default, or `F' for fixed METHODS - create HASHREF + new HASHREF Creates a new service definition. To add the service definition to the database, see the section on "insert". @@ -48,11 +48,15 @@ METHODS otherwise returns false. Called by the insert and replace methods. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: part_svc.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ +BUGS Delete is unimplemented. + The list of svc_* tables is hardcoded. When svc_acct_pop is + renamed, this should be fixed. + SEE ALSO the FS::Record manpage, the FS::part_pkg manpage, the FS::pkg_svc manpage, the FS::cust_svc manpage, the FS::svc_acct @@ -67,3 +71,12 @@ HISTORY pod ivan@sisd.com 98-sep-21 + $Log: part_svc.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.3 1999/02/07 09:59:44 ivan more + mod_perl fixes, and bugfixes Peter Wemm sent via email + + Revision 1.2 1998/12/29 11:59:50 ivan mostly properly OO, some + work still to be done with svc_ stuff + diff --git a/htdocs/docs/man/pkg_svc.txt b/htdocs/docs/man/pkg_svc.txt index bde0043f1..d921642be 100644 --- a/htdocs/docs/man/pkg_svc.txt +++ b/htdocs/docs/man/pkg_svc.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::pkg_svc; - $record = create FS::pkg_svc \%hash; - $record = create FS::pkg_svc { 'column' => 'value' }; + $record = new FS::pkg_svc \%hash; + $record = new FS::pkg_svc { 'column' => 'value' }; $error = $record->insert; @@ -26,7 +26,7 @@ DESCRIPTION quantity - Quantity of this service definition that this billing item definition includes METHODS - create HASHREF + new HASHREF Create a new record. To add the record to the database, see the section on "insert". @@ -47,9 +47,10 @@ METHODS there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: pkg_svc.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ +BUGS SEE ALSO the FS::Record manpage, the FS::part_pkg manpage, the FS::part_svc manpage, schema.html from the base documentation. @@ -59,3 +60,13 @@ HISTORY pod ivan@sisd.com 98-sep-22 + $Log: pkg_svc.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.3 1999/01/18 21:58:08 ivan + esthetic: eq and ne were used in a few places instead of == and + != + + Revision 1.2 1998/12/29 11:59:51 ivan mostly properly OO, some + work still to be done with svc_ stuff + diff --git a/htdocs/docs/man/svc_Common.txt b/htdocs/docs/man/svc_Common.txt new file mode 100644 index 000000000..d63b8f245 --- /dev/null +++ b/htdocs/docs/man/svc_Common.txt @@ -0,0 +1,75 @@ +NAME + FS::svc_Common - Object method for all svc_ records + +SYNOPSIS + use FS::svc_Common; + + @ISA = qw( FS::svc_Common ); + +DESCRIPTION + FS::svc_Common is intended as a base class for table-specific + classes to inherit from, i.e. FS::svc_acct. FS::svc_Common + inherits from FS::Record. + +METHODS + insert + Adds this record to the database. If there is an error, + returns the error, otherwise returns false. + + The additional fields pkgnum and svcpart (see the + FS::cust_svc manpage) should be defined. An FS::cust_svc + record will be created and inserted. + + delete + Deletes this account from the database. If there is an + error, returns the error, otherwise returns false. + + The corresponding FS::cust_svc record will be deleted as + well. + + setfixed + Sets any fixed fields for this service (see the FS::part_svc + manpage). If there is an error, returns the error, otherwise + returns the FS::part_svc object (use ref() to test the + return). Usually called by the check method. + + setdefault + Sets all fields to their defaults (see the FS::part_svc + manpage), overriding their current values. If there is an + error, returns the error, otherwise returns the FS::part_svc + object (use ref() to test the return). + + suspend + unsuspend + cancel + Stubs - return false (no error) so derived classes don't + need to define these methods. Called by the cancel method of + FS::cust_pkg (see the FS::cust_pkg manpage). + +VERSION + $Id: svc_Common.txt,v 1.1 1999-04-08 13:39:32 ivan Exp $ + +BUGS + The setfixed method return value. + + The new method should set defaults from part_svc (like the check + method sets fixed values)? + +SEE ALSO + the FS::Record manpage, the FS::cust_svc manpage, the + FS::part_svc manpage, the FS::cust_pkg manpage, schema.html from + the base documentation. + +HISTORY + $Log: svc_Common.txt,v $ + Revision 1.1 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.3 1999/03/25 13:31:29 ivan + added setdefault method (generalized setfixed method to setx + method) + + Revision 1.2 1999/01/25 12:26:14 ivan yet more mod_perl stuff + + Revision 1.1 1998/12/30 00:30:45 ivan svc_ stuff is more + properly OO - has a common superclass FS::svc_Common + diff --git a/htdocs/docs/man/svc_acct.txt b/htdocs/docs/man/svc_acct.txt index 1c9caf5fb..7eb5be47b 100644 --- a/htdocs/docs/man/svc_acct.txt +++ b/htdocs/docs/man/svc_acct.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::svc_acct; - $record = create FS::svc_acct \%hash; - $record = create FS::svc_acct { 'column' => 'value' }; + $record = new FS::svc_acct \%hash; + $record = new FS::svc_acct { 'column' => 'value' }; $error = $record->insert; @@ -23,7 +23,7 @@ SYNOPSIS DESCRIPTION An FS::svc_acct object represents an account. FS::svc_acct - inherits from FS::Record. The following fields are currently + inherits from FS::svc_Common. The following fields are currently supported: svcnum - primary key (assigned automatcially for new accounts) @@ -39,7 +39,7 @@ DESCRIPTION slipip - IP address radius_*Radius_Attribute* - *Radius-Attribute* METHODS - create HASHREF + new HASHREF Creates a new account. To add the account to the database, see the section on "insert". @@ -126,19 +126,22 @@ METHODS Sets any fixed values; see the FS::part_svc manpage. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: svc_acct.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $ +BUGS The remote commands should be configurable. - The create method should set defaults from part_svc (like the - check method sets fixed values). + The bits which ssh should fork before doing so. + + The $recref stuff in sub check should be cleaned up. SEE ALSO - the FS::Record manpage, the FS::Conf manpage, the FS::cust_svc - manpage, the FS::part_svc manpage, the FS::cust_pkg manpage, the - FS::SSH manpage, the ssh manpage, the FS::svc_acct_pop manpage, - schema.html from the base documentation. + the FS::svc_Common manpage, the FS::Record manpage, the FS::Conf + manpage, the FS::cust_svc manpage, the FS::part_svc manpage, the + FS::cust_pkg manpage, the FS::SSH manpage, the ssh manpage, the + FS::svc_acct_pop manpage, schema.html from the base + documentation. HISTORY ivan@voicenet.com 97-jul-16 - 21 @@ -166,3 +169,21 @@ HISTORY pod and FS::conf ivan@sisd.com 98-sep-22 + $Log: svc_acct.txt,v $ + Revision 1.4 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.7 1999/04/07 14:37:37 ivan use + FS::part_svc and FS::svc_acct_pop to avoid warnings + + Revision 1.6 1999/01/25 12:26:15 ivan yet more mod_perl stuff + + Revision 1.5 1999/01/18 21:58:09 ivan esthetic: eq and ne were + used in a few places instead of == and != + + Revision 1.4 1998/12/30 00:30:45 ivan svc_ stuff is more + properly OO - has a common superclass FS::svc_Common + + Revision 1.2 1998/11/13 09:56:55 ivan change configuration file + layout to support multiple distinct databases (with own set of + config files, export, etc.) + diff --git a/htdocs/docs/man/svc_acct_pop.txt b/htdocs/docs/man/svc_acct_pop.txt index ac0965413..e8629fd47 100644 --- a/htdocs/docs/man/svc_acct_pop.txt +++ b/htdocs/docs/man/svc_acct_pop.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::svc_acct_pop; - $record = create FS::svc_acct_pop \%hash; - $record = create FS::svc_acct_pop { 'column' => 'value' }; + $record = new FS::svc_acct_pop \%hash; + $record = new FS::svc_acct_pop { 'column' => 'value' }; $error = $record->insert; @@ -26,17 +26,17 @@ DESCRIPTION ac - area code exch - exchange METHODS - create HASHREF + new HASHREF Creates a new point of presence (if only it were that easy!). To add the point of presence to the database, see the section on "insert". insert - Adds this point of presence to the databaes. If there is an + Adds this point of presence to the database. If there is an error, returns the error, otherwise returns false. delete - Currently unimplemented. + Removes this point of presence from the database. replace OLD_RECORD Replaces OLD_RECORD with this one in the database. If there @@ -47,9 +47,10 @@ METHODS presence. If there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: svc_acct_pop.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ +BUGS It should be renamed to part_pop. SEE ALSO @@ -63,3 +64,9 @@ HISTORY pod ivan@sisd.com 98-sep-23 + $Log: svc_acct_pop.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.2 1998/12/29 11:59:53 ivan + mostly properly OO, some work still to be done with svc_ stuff + diff --git a/htdocs/docs/man/svc_acct_sm.txt b/htdocs/docs/man/svc_acct_sm.txt index e9940af9a..dc0773f0f 100644 --- a/htdocs/docs/man/svc_acct_sm.txt +++ b/htdocs/docs/man/svc_acct_sm.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::svc_acct_sm; - $record = create FS::svc_acct_sm \%hash; - $record = create FS::svc_acct_sm { 'column' => 'value' }; + $record = new FS::svc_acct_sm \%hash; + $record = new FS::svc_acct_sm { 'column' => 'value' }; $error = $record->insert; @@ -31,7 +31,7 @@ DESCRIPTION domuid - uid of the target account (see the FS::svc_acct manpage) domuser - virtual username METHODS - create HASHREF + new HASHREF Creates a new virtual mail alias. To add the virtual mail alias to the database, see the section on "insert". @@ -93,11 +93,14 @@ METHODS Sets any fixed values; see the FS::part_svc manpage. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: svc_acct_sm.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ +BUGS The remote commands should be configurable. + The $recref stuff in sub check should be cleaned up. + SEE ALSO the FS::Record manpage, the FS::Conf manpage, the FS::cust_svc manpage, the FS::part_svc manpage, the FS::cust_pkg manpage, the diff --git a/htdocs/docs/man/svc_domain.txt b/htdocs/docs/man/svc_domain.txt index 03d3dbc27..939a940ac 100644 --- a/htdocs/docs/man/svc_domain.txt +++ b/htdocs/docs/man/svc_domain.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::svc_domain; - $record = create FS::svc_domain \%hash; - $record = create FS::svc_domain { 'column' => 'value' }; + $record = new FS::svc_domain \%hash; + $record = new FS::svc_domain { 'column' => 'value' }; $error = $record->insert; @@ -23,13 +23,13 @@ SYNOPSIS DESCRIPTION An FS::svc_domain object represents a domain. FS::svc_domain - inherits from FS::Record. The following fields are currently + inherits from FS::svc_Common. The following fields are currently supported: svcnum - primary key (assigned automatically for new accounts) domain METHODS - create HASHREF + new HASHREF Creates a new domain. To add the domain to the database, see the section on "insert". @@ -47,6 +47,13 @@ METHODS A registration or transfer email will be submitted unless $FS::svc_domain::whois_hack is true. + The additional field *email* can be used to manually set the + admin contact email address on this email. Otherwise, the + svc_acct records for this package (see the FS::cust_pkg + manpage) are searched. If there is exactly one svc_acct + record in the same package, it is automatically used. + Otherwise an error is returned. + delete Deletes this domain from the database. If there is an error, returns the error, otherwise returns false. @@ -96,23 +103,26 @@ METHODS submit_internic Submits a registration email for this domain. -BUGS - It doesn't properly override FS::Record yet. +VERSION + $Id: svc_domain.txt,v 1.4 1999-04-08 13:39:32 ivan Exp $ +BUGS All BIND/DNS fields should be included (and exported). - All registries should be supported. + Delete doesn't send a registration template. - Not all configuration access is through FS::Conf! + All registries should be supported. Should change action to a real field. + The $recref stuff in sub check should be cleaned up. + SEE ALSO - the FS::Record manpage, the FS::Conf manpage, the FS::cust_svc - manpage, the FS::part_svc manpage, the FS::cust_pkg manpage, the - FS::SSH manpage, the ssh manpage, the dot-qmail manpage, - schema.html from the base documentation, config.html from the - base documentation. + the FS::svc_Common manpage, the FS::Record manpage, the FS::Conf + manpage, the FS::cust_svc manpage, the FS::part_svc manpage, the + FS::cust_pkg manpage, the FS::SSH manpage, the ssh manpage, the + dot-qmail manpage, schema.html from the base documentation, + config.html from the base documentation. HISTORY ivan@voicenet.com 97-jul-21 @@ -129,3 +139,21 @@ HISTORY pod, some FS::Conf (not complete) ivan@sisd.com 98-sep-23 + $Log: svc_domain.txt,v $ + Revision 1.4 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.7 1999/04/07 14:40:15 ivan + use all stuff that's qsearch'ed to avoid warnings + + Revision 1.6 1999/01/25 12:26:17 ivan yet more mod_perl stuff + + Revision 1.5 1998/12/30 00:30:47 ivan svc_ stuff is more + properly OO - has a common superclass FS::svc_Common + + Revision 1.3 1998/11/13 09:56:57 ivan change configuration file + layout to support multiple distinct databases (with own set of + config files, export, etc.) + + Revision 1.2 1998/10/14 08:18:21 ivan More informative error + messages and better doc for admin contact email stuff + diff --git a/htdocs/docs/man/type_pkgs.txt b/htdocs/docs/man/type_pkgs.txt index 9822b4802..f575e2041 100644 --- a/htdocs/docs/man/type_pkgs.txt +++ b/htdocs/docs/man/type_pkgs.txt @@ -4,8 +4,8 @@ NAME SYNOPSIS use FS::type_pkgs; - $record = create FS::type_pkgs \%hash; - $record = create FS::type_pkgs { 'column' => 'value' }; + $record = new FS::type_pkgs \%hash; + $record = new FS::type_pkgs { 'column' => 'value' }; $error = $record->insert; @@ -24,7 +24,7 @@ DESCRIPTION typenum - Agent type, see the FS::agent_type manpage pkgpart - Billing item definition, see the FS::part_pkg manpage METHODS - create HASHREF + new HASHREF Create a new record. To add the record to the database, see the section on "insert". @@ -45,6 +45,14 @@ METHODS there is an error, returns the error, otherwise returns false. Called by the insert and replace methods. +VERSION + $Id: type_pkgs.txt,v 1.3 1999-04-08 13:39:32 ivan Exp $ + +BUGS +SEE ALSO + the FS::Record manpage, the FS::agent_type manpage, the + FS::part_pkgs manpage, schema.html from the base documentation. + HISTORY Defines the relation between agent types and pkgparts (Which pkgparts can the different [types of] agents sell?) @@ -53,3 +61,9 @@ HISTORY change to ut_ FS::Record, fixed bugs ivan@sisd.com 97-dec-10 + $Log: type_pkgs.txt,v $ + Revision 1.3 1999-04-08 13:39:32 ivan + convert from pod for 1.2.0 release + Revision 1.2 1998/12/29 11:59:58 ivan + mostly properly OO, some work still to be done with svc_ stuff + diff --git a/htdocs/docs/postgresql.html b/htdocs/docs/postgresql.html new file mode 100755 index 000000000..151081176 --- /dev/null +++ b/htdocs/docs/postgresql.html @@ -0,0 +1,23 @@ +<head> + <title>PostgreSQL notes</title> +</head> +<body> + <h1>PostgreSQL notes</h1> +<p> +PostgreSQL ships by default with a maximum of 31 character column names. If +you use arbitrary RADIUS attributes longer than 9 characters, fs-setup will +fail with `duplicate column' errors (in the part_svc table). +Solution: use a different database +engine, or recompile PostgreSQL with 64 character column names. +</p> +Future versions of Freeside will keep all column names under 31 characters to +avoid this problem. +</p> +<p> +( I've personally been unable to get PostgreSQL working with larger column names, +though the process does look like it should be straightforward. If anyone is +interested in assisting me with this, please get in touch. + -Ivan <a href="mailto:ivan@sisd.com"><ivan@sisd.com</a>> ) +</p> +</body> + diff --git a/htdocs/docs/schema.html b/htdocs/docs/schema.html index 5a296ec83..f50525183 100644 --- a/htdocs/docs/schema.html +++ b/htdocs/docs/schema.html @@ -50,7 +50,9 @@ <li>custnum - primary key <li>agentnum - <a href="#agent">agent</a> <li>refnum - <a href="#part_referral">referral</a> + <li>titlenum - <a href="#part_title">title</a> <li>first - name + <li>middle - name <li>last - name <li>ss - social security number <li>company @@ -70,11 +72,18 @@ <li>tax - tax exempt, Y or null <li>otaker - order taker </ul> + <li><a name="cust_main_invoice">cust_main_invoice</a> - Invoice destinations for email invoices + <ul> + <li>destnum - primary key + <li>custnum - <a href="#cust_main">customer</a> + <li>dest - Invoice destination: If numeric, a <a href="#svc_acct">svcnum</a>, if string, a literal email address, or `POST' to enable mailing (the default if no cust_main_invoice records exist) + </ul> <li><a name="cust_main_county">cust_main_county</a> - Tax rates <ul> <li>taxnum - primary key <li>state <li>county + <li>country <li>tax - % rate </ul> <li><a name="cust_pay">cust_pay</a> - Payments @@ -155,6 +164,11 @@ <li><i>table</i>__<i>field</i> - Default or fixed value for <i>field</i> in <i>table</i> <li><i>table</i>__<i>field</i>_flag - null, D or F </ul> + <li><a name="part_title">part_title</a> - Personal titles + <ul> + <li>titlenum - primary key + <li>title - personal title (`Dr.' or `Mr.') + </ul> <li><a name="pkg_svc">pkg_svc</a> <ul> <li>pkgpart - <a href="#part_pkg">Package definition</a> diff --git a/htdocs/docs/trouble.html b/htdocs/docs/trouble.html index 2cf6d4e71..c918138c8 100644 --- a/htdocs/docs/trouble.html +++ b/htdocs/docs/trouble.html @@ -5,7 +5,7 @@ <h1>Troubleshooting</h1> <ul> <li>When troubleshooting the web interface, helpful information is often in your web server's error log. - <li>Internet Explorer will not work with Freeside's HTML interface. + <li>Internet Explorer will not work with Freeside's HTML interface. <b>This may be fixed in >1.2, please report your experiences!</b> <a HREF="http://www.netscape.com">Netscape</a>, <a HREF="http://lynx.browser.org">Lynx</a>, and <a HREF="http://www.cs.indiana.edu/elisp/w3/docs.html">Emacs/W3</a>, @@ -17,7 +17,7 @@ Ambiguous use of value => resolved to "value" => at /usr/lib/perl5/site_perl/File/CounterFile.pm line 132. </pre> This clutters up your log files but is otherwise harmless. Upgrade to the latest File::CounterFile. - <li>If you get an Internal Server Error when adding or editing, but find that the update has occured, and you get something like the following in your web server's error log: + <li><b>(No longer applicable in >1.2!)</b> If you get an Internal Server Error when adding or editing, but find that the update has occured, and you get something like the following in your web server's error log: <pre> access to <i>/your/path</i>/edit/process/<i>some_table</i>.cgi failed for <i>machine.domain.tld</i>, reason: malformed header from script. @@ -31,11 +31,8 @@ at <i>/your/path</i>/site_perl/FS/UID.pm line 26. BEGIN failed--compilation aborted at <i>/your/path</i>/edit/process/part_svc.cgi line 15. </pre> - Then the scripts are not running setuid freeside. If you were editing -the files, it is possible you inadvertantly removed the setuid bit. -As mentioned in the <a href="install.html">New Installation</a> section of the documentation, set ownership and permissions for the web interface. Your system should support secure setuid scripts or Perl's emulation, see <a href="http://www.perl.com/CPAN-local/doc/manual/html/pod/perlsec.html#Security_Bugs">perlsec: Security Bugs</a> for information and workarounds. -<pre>cd /usr/local/apache/htdocs/freeside -chown -R freeside . -chmod 4755 browse/*.cgi edit/*.cgi edit/process/*.cgi misc/*.cgi misc/process/*.cgi search/*.cgi view/*.cgi</pre> + Then the scripts are not running as the freeside freeside user. See +the <a href="install.html">New Installation</a> section of the documentation. + <li>If you receive `can not connect to server' errors using MySQL on a system that doesn't support native threading, you may need to specify the full hostname in your DBI datasource. See the <a href="http://www.mysql.com/Manual_chapter/manual_Problems.html#Can_not_connect_to_server">MySQL documentation</a>, DBI manpage and the DBD::mysql manpage for details. </ul> </body> diff --git a/htdocs/docs/upgrade2.html b/htdocs/docs/upgrade2.html index 4bf7ea45a..7acae48f7 100644 --- a/htdocs/docs/upgrade2.html +++ b/htdocs/docs/upgrade2.html @@ -1,8 +1,8 @@ <head> - <title>Upgrading to 1.1.3</title> + <title>Upgrading to 1.1.4</title> </head> <body> -<h1>Upgrading to 1.1.3 from 1.1.x</h1> +<h1>Upgrading to 1.1.4 from 1.1.x</h1> <ul> <li>If migrating from 1.0.0, see these <a href="upgrade.html">instructions</a> first. <li>Back up your data and current Freeside installation. diff --git a/htdocs/docs/upgrade3.html b/htdocs/docs/upgrade3.html new file mode 100644 index 000000000..815652aaf --- /dev/null +++ b/htdocs/docs/upgrade3.html @@ -0,0 +1,40 @@ +<head> + <title>Upgrading to 1.2.x</title> +</head> +<body> +<h1>Upgrading to 1.1.x from 1.2.x</h1> +<ul> + <li>If migrating from 1.0.0, see these <a href="upgrade.html">instructions</a> first. + <li>If migrating from less than 1.1.4, see these <a href="upgrade2.html">instructions</a> first. + <li>Back up your data and current Freeside installation. + <li>Install the Perl module <a href="http://www.perl.com/CPAN/modules/by-module/String/">String-Approx</a> + <li><a href="config.html">Configuration file</a> location has changed! + <li>Move /var/spool/freeside/dbdef.<i>datasrc</i> to /usr/local/etc/freeside/dbdef.<i>datasrc</i>. + <li>Move /var/spool/freeside/counters to /usr/local/etc/freeside/counters.<i>datasrc</i>. + <li>Move /var/spool/freeside/export to /usr/local/etc/freeside/export.<i>datasrc</i>. + <li>Apply the following changes to your database: +<pre> +<!-- ALTER TABLE cust_main ADD middle varchar(80) NULL; +ALTER TABLE cust_main ADD titlenum int NULL; +-->ALTER TABLE cust_main CHANGE state state varchar(80) NULL; +ALTER TABLE cust_main_county CHANGE state state varchar(80) NULL; +ALTER TABLE cust_main_county ADD country char(2); +ALTER TABLE cust_main CHANGE paydate paydate varchar(10); +UPDATE cust_main SET country = "US" where country IS NULL OR country = ''; +UPDATE cust_main_county SET country = "US" where country IS NULL OR country = ""; +<!--CREATE TABLE part_title ( + titlenum int NOT NULL, + title varchar(80) NOT NULL, + PRIMARY KEY (titlenum) +); +-->CREATE TABLE cust_main_invoice ( + destnum int NOT NULL, + custnum int NOT NULL, + dest varchar(80) NOT NULL, + PRIMARY KEY (destnum), + INDEX ( custnum ) +); +</pre> + <li>Run bin/dbdef-create. This file uses MySQL-specific syntax. If you are running a different database engine you will need to modify it slightly. + <li>Copy or symlink htdocs and site_perl to the new copies. +</body> |