# $Id$ PyKota - Print Quota for CUPS and LPRng (c) 2003-2004 Jerome Alet This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ============================================================ TODO, in no particular order : - Web enabled pykotme and dumpykota. - Add a configuration directive to forbid user account creation if the user doesn't exist on the system. - Add an MD5 checksum of the job's datas to the history, to be able to discover duplicate print jobs. This is partially done : the checksum is now computed and exported into the environment variable PYKOTAMD5SUM, but it is not yet saved into the database. - Maybe put "gracedelay" in the database. - Price multiplier/divisor which can be set on a per user or per user group basis. - Ink accounting ala PrintBill. - Price and statistics per page format. - Add a description field to users/groups. - Allow the admin to choose an action to take when the database is unavailable (server is down or something like that) : introduce two directives : nodb: accept|reject|hold lognodb: /path/to/file/for/later/batch/update/of/database - CUPS accepts the "STATE: ..." message as backchannel data : use this to tell CUPS what action has been taken for current job. - Add frontbanner and rearbanner directives to pykota.conf This directives will allow the launch (if executable) or the use of the banner path passed as a parameter. If executable, the banner content will be taken from the command's output, else from the banner file directly. Maybe allow frontbanner: +somepath and frontbanner: -somepath to allow/deny accounting of the banner itself (not sure because may be VERY DIFFICULT !) - Think about some possible client <=> PyKota dialog possibilities, like embedding a small web server in PyKota for example, or something like that. - Log something when --add is used with existing entries. Maybe add a new command line option to force/not force modification of existing entries. - Finish implementation of quota-then-balance and balance-then-quota. - Test and document a possible workaround for knowing if the job is a banner (embed a postscript comment in the banner). - Introduce the pkusers command. pkusers --nogroup pkusers --ingroups gr1,gr2,... --outgroups gr3,gr4,... - Allow the --ingroups command line option to repykota, to report only users members of the specified groups. - Documentation... - Complete web administrative interface with graphical reports. - Group administrators (think quotagrpdmins for disk quotas). Won't be implemented for now. - Multidatabase support, e.g. store users in LDAP, quota related datas in PostgreSQL, history in text file, and so on... For 2.0, probably not before. ============================================================ Please e-mail bugs to: alet@librelogiciel.com (Jerome Alet)