Changeset 959

Show
Ignore:
Timestamp:
04/24/03 23:09:47 (22 years ago)
Author:
jalet
Message:

Documentation slightly improved.

Location:
pykota/trunk/docs
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/docs/edpykota.sgml

    r865 r959  
    22 
    33<chapter> 
    4   <title id="edpykota">Setting print quotas with edpykota</title> 
     4  <title id="edpykota">Maintaining the Print Quota DataBase with edpykota</title> 
    55  <para>Last modified on $Date$</para> 
    66   
    77  <para> 
    8     TODO : blah 
     8    <application>edpykota</application> is the command line tool with which you will  
     9    maintain your print quota database. 
    910  </para> 
     11   
     12  <para> 
     13    Here's a list of features : 
     14     
     15    <itemizedlist> 
     16      <listitem> 
     17        <para> 
     18          Add printers ; 
     19        </para> 
     20      </listitem> 
     21      <listitem> 
     22        <para> 
     23          Add and delete users and groups ; 
     24        </para> 
     25      </listitem> 
     26      <listitem> 
     27        <para> 
     28          Set users' account balances ; 
     29        </para> 
     30      </listitem> 
     31      <listitem> 
     32        <para> 
     33          Set users and groups print quotas on printers, eventually by using another user 
     34          or group as a template ; 
     35        </para> 
     36      </listitem> 
     37      <listitem> 
     38        <para> 
     39          Set price per page and price per job for printers ; 
     40        </para> 
     41      </listitem> 
     42      <listitem> 
     43        <para> 
     44          Switch users or groups to <quote>account only</quote> mode (no quota enforcement) ; 
     45        </para> 
     46      </listitem> 
     47      <listitem> 
     48        <para> 
     49          Define hard and soft limits for users ou groups quotas, on a per printer basis ; 
     50        </para> 
     51      </listitem> 
     52      <listitem> 
     53        <para> 
     54          Choose the way you will limit printing : either by page quota or by account balance value. 
     55        </para> 
     56      </listitem> 
     57    </itemizedlist> 
     58  </para> 
     59   
    1060</chapter> 
    1161 
     
    1363 
    1464$Log$ 
     65Revision 1.3  2003/04/24 21:09:47  jalet 
     66Documentation slightly improved. 
     67 
    1568Revision 1.2  2003/03/25 09:32:06  jalet 
    1669Improved documentation. 
  • pykota/trunk/docs/filterpykota.sgml

    r865 r959  
    88  <para> 
    99    To account for pages or eventually ink usage, you must plug your accounting 
    10     system into <application>CUPS</application>. One way to do this without having 
    11     to modify <application>CUPS</application> itself, is by using a <firstterm>filter</firstterm>. 
     10    system somewhere into the printing system you use, be it either <application>CUPS</application> 
     11    or <application>LPRng</application>. One way to do this without having 
     12    to modify the printing system itself, is by using a <firstterm>filter</firstterm>. 
    1213  </para> 
    1314   
     
    1819    PostScript data as its input, and, as its name implies, outputs PostScript data too, but after having 
    1920    eventually rearranged the pages to fit several pages on a single sheet of paper, or other manipulations 
    20     like that. 
     21    like that.  
    2122  </para> 
    2223   
     
    2829   
    2930  <para> 
     31    <application>LPRng</application> can also use filters, one often used in combination with 
     32    <application>LPRng</application> is <application>magicfilter</application> which can convert  
     33    different input formats to native printers languages like PostScript or ESC/P2. 
     34  </para>   
     35   
     36  <para> 
    3037    So to do its own accounting, <application>PyKota</application> has its own filter, named <application>pykota</application>, 
    31     which you have to plug into the different set of filters used by <application>CUPS</application>. The procedure to  
     38    which you have to plug into the different set of filters used by your printing system of choice. The procedure to  
    3239    install the <application>pykota</application> filter is described in the  
    3340    <xref linkend="installation" endterm="installation"> chapter. 
     
    3542   
    3643  <para> 
    37     Currently the <application>pykota</application> filter is used at the very last stage of the print mechanism, 
     44    Currently with a <application>CUPS</application> backend, the <application>pykota</application> filter is used at the very last stage of the print mechanism, 
    3845    just before the final data is sent to the printer, but it may eventually be used earlier with some 
    3946    modifications to <application>CUPS</application>'s filtering configuration. This is not tested yet, but this 
    4047    may be the solution to use <application>PyKota</application> with printers which really needs to have 
    41     a <literal>*cupsFilter</literal> line in their <acronym>PPD</acronym> file, i.e. non-postscript printers. 
     48    a specific filter like <application>magicfilter</applicaton> or <application>cupsomatic</application>,  
     49    i.e. non-postscript printers. This is a limitation in <application>CUPS</application> which doesn't really 
     50    allow to specify multiple print filters for different purposes. This problem will be solved in <application>CUPS</application> 
     51    version 1.2 and higher. 
    4252  </para> 
    4353   
    4454  <para> 
    45     The <application>pykota</application> filter really is the only thing which depends on <application>CUPS</application>, 
    46     so it is probable that a next version of <application>PyKota</application> will support other printing environments. 
     55    When used with an <application>LPRng</application> backend, the accounting filter is not defined the same way  
     56    input filters are, so the problem described above doesn't exist, and <application>PyKota</application> 
     57    may work with non-postscript printers, provided they can report their page counter and you know how to do 
     58    this. 
     59  </para> 
     60   
     61  <para> 
     62    When you submit a print job, <application>pykota</application> is automatically launched by your printing system, 
     63    so it has to detect which system you are using (<application>CUPS</application> or <application>LPRng</application>) 
     64    and behave like if it was specifically designed for your printing system. Fortunately there's not a lot 
     65    of differences, the more important one is the exit codes used to tell the printing environment if a job 
     66    has to be accepted or rejected.  
     67  </para> 
     68   
     69  <para> 
     70    <application>pykota</application> then asks the printer for its internal page counter, read from the Quota DataBase the internal 
     71    page counter for this printer when the previous job was launched, computes the difference, and report it as the  
     72    previous job's size in the Quota DataBase. It then updates the last user's print quota and account balance, and 
     73    warn him if he is over quota or his account balance below 0. Finally it checks if the user who launched the  
     74    current job is below or above his print quota, and either allow or deny the job's datas to pass to the underlying  
     75    layer (the printer itself). 
     76  </para> 
     77   
     78  <para> 
     79    If a problem occurs, it is logged either to the filter's standard output or to the system logger, depending on 
     80    your preferences in <application>PyKota</application>'s configuration file. Also if a print quota is reached 
     81    you may choose if the administrator, the user, both or noone will receive an email message explaining 
     82    the situation and proposing a solution. 
    4783  </para> 
    4884   
     
    5288 
    5389$Log$ 
     90Revision 1.3  2003/04/24 21:09:47  jalet 
     91Documentation slightly improved. 
     92 
    5493Revision 1.2  2003/03/25 09:32:06  jalet 
    5594Improved documentation. 
  • pykota/trunk/docs/installation.sgml

    r942 r959  
    2929    have to decompress and visit its archive, to do so just type the following commands : 
    3030    <screen> 
    31 jerome@nordine:~$ tar -zxf pykota-1.03-official.tar.gz     
    32 jerome@nordine:~$ cd pykota-1.03-official 
    33 jerome@nordine:~/pykota-1.03-official$ 
     31jerome@nordine:~$ tar -zxf pykota-1.04-official.tar.gz     
     32jerome@nordine:~$ cd pykota-1.04-official 
     33jerome@nordine:~/pykota-1.04-official$ 
    3434    </screen> 
    3535  </para> 
     
    160160        From a command line interpreter (i.e. shell), type the following commands : 
    161161        <screen> 
    162 jerome@nordine:~$ cd pykota-1.03-official/initscripts/ 
    163 jerome@nordine:~/pykota-1.03-official/initscripts$ psql -h localhost -U postgres template1 
     162jerome@nordine:~$ cd pykota-1.04-official/initscripts/ 
     163jerome@nordine:~/pykota-1.04-official/initscripts$ psql -h localhost -U postgres template1 
    164164Welcome to psql, the PostgreSQL interactive terminal. 
    165165 
     
    194194ALTER USER 
    195195pykota=# \q 
    196 jerome@nordine:~/pykota-1.03-official/initscripts$ 
     196jerome@nordine:~/pykota-1.04-official/initscripts$ 
    197197        </screen> 
    198198      </para> 
     
    206206        To improve security further, you could encrypt your database connections, or 
    207207        take any other step as needed. Please refer to <application>PostgreSQL</application>'s 
    208         documentation for details. 
     208        documentation for details. Also if <application>PyKota</application>'s configuration 
     209        file is readable by anyone with access on your file system, a local user could  
     210        create some script to modify his own print quota. 
    209211        <warning> 
    210212          <title>Warning</title> 
     
    274276      For each Print Server on which you plan to implement the print quota 
    275277      mechanism, you have, of course, to have an already working printing environment.  
    276       Currently <application>PyKota</application> only works with the 
    277       <ulink url="http://www.cups.org"><application>CUPS</application></ulink> environment, 
     278      Currently <application>PyKota</application> works with either the 
     279      <ulink url="http://www.cups.org"><application>CUPS</application></ulink> 
     280      or the <ulink url="http://lprng.sourceforge.net"><application>LPRng</application></ulink>, 
    278281      but more may be added in the future. 
    279282    </para> 
    280283     
    281284    <para> 
    282       Here's the list of software you have to install on each Print Server : 
     285      Here's the list of software you have to install on each Print Server, version numbers 
     286      are given as an indication of which was successfully tested, but older versions may  
     287      work too. 
    283288      <itemizedlist> 
    284289        <listitem> 
    285290          <para> 
    286             CUPS version 1.1 or above. 
    287             You can download it from <ulink url="http://www.cups.org">http://www.cups.org</ulink>. 
     291            <application>CUPS</application> version 1.1 or above, or <application>LPRng</application> 
     292            version 3.8.20 or above (it probably works with older versions but this is untested). 
     293            You can download them from <ulink url="http://www.cups.org">http://www.cups.org</ulink> 
     294            or <ulink url="http://lprng.sourceforge.net">http://lprng.sourceforge.net</ulink> 
    288295          </para> 
    289296        </listitem>   
     
    341348            <application>ucd-snmp</application> or <application>net-snmp</application> tools, version 4.2.5 or above. You only need 
    342349            the <application>snmpget</application> command. 
    343             You can download them from <ulink url="http://www.sourceforge.net/projects/net-snmp/">http://www.sourceforge.net/projects/net-snmp/</ulink> 
    344           </para> 
    345         </listitem>   
    346         <listitem> 
    347           <para> 
    348             eGenix' mxDateTime Python module. It must match your default Python version. 
     350            You can download them from <ulink url="http://www.sourceforge.net/projects/net-snmp/">http://www.sourceforge.net/projects/net-snmp/</ulink>. 
     351            You only need this if you plan to query your printers for their internal page counter via SNMP. 
     352          </para> 
     353        </listitem>   
     354        <listitem> 
     355          <para> 
     356            <application>netatalk</application> version 1.6.1 or above. You only need 
     357            the <application>pap</application> command. 
     358            You can download them from <ulink url="http://netatalk.sourceforge.net/">http://netatalk.sourceforge.net/</ulink>. 
     359            You only need this if you plan to query your printers for their internal page counter via AppleTalk. 
     360          </para> 
     361        </listitem>   
     362        <listitem> 
     363          <para> 
     364            eGenix' mxDateTime Python module version 2.0.3 or above. It must match your default Python version. 
    349365            You can download it from <ulink url="http://www.egenix.com">http://www.egenix.com</ulink>. 
    350366          </para> 
     
    358374 
    359375$Log$ 
     376Revision 1.13  2003/04/24 21:09:47  jalet 
     377Documentation slightly improved. 
     378 
    360379Revision 1.12  2003/04/17 21:33:16  jalet 
    361380Version 1.03 is out. 
  • pykota/trunk/docs/repykota.sgml

    r865 r959  
    1414    PyKota features a quota report generator, named <application>repykota</application>, 
    1515    with which you can print the current state of the quota database. 
     16  </para> 
     17   
     18  <para> 
     19    <application>PyKota</application> also features a CGI script to remotely access 
     20    to print quota reports with a web browser, it is called <application>printquota.cgi</application> 
     21    and you can put it in your web server's cgi-bin directory if a web server is installed on 
     22    any machine on which <application>PyKota</application> is also installed and configured 
     23    correctly. 
    1624  </para> 
    1725   
     
    3543 
    3644$Log$ 
     45Revision 1.4  2003/04/24 21:09:47  jalet 
     46Documentation slightly improved. 
     47 
    3748Revision 1.3  2003/03/25 09:32:06  jalet 
    3849Improved documentation. 
  • pykota/trunk/docs/warnpykota.sgml

    r867 r959  
    3131    every day, then you'll be sure that all your users who are above their print quota 
    3232    will not forget it ! 
     33  </para> 
     34   
     35  <para> 
     36    At the very least, try to make your best to disallow ordinary users to be able to 
     37    launch this command, since malicious users could fill other users mailboxes 
     38    by repeatedly running <application>warnpykota</application> : each user above 
     39    quota would receive multiple email messages, and possibly the administrator too ! 
    3340  </para> 
    3441   
     
    7178 
    7279$Log$ 
     80Revision 1.4  2003/04/24 21:09:47  jalet 
     81Documentation slightly improved. 
     82 
    7383Revision 1.3  2003/03/25 12:30:37  jalet 
    7484Added warnpykota command synopsis