root / pykota / trunk / TODO @ 1904

Revision 1904, 5.2 kB (checked in by jalet, 19 years ago)

Added an entry to improve Matt's patch for banners+CUPS

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1# $Id$
2
3PyKota - Print Quota for CUPS and LPRng
4
5(c) 2003-2004 Jerome Alet <alet@librelogiciel.com>
6This program is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 2 of the License, or
9(at your option) any later version.
10
11This program is distributed in the hope that it will be useful,
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with this program; if not, write to the Free Software
18Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
19
20============================================================
21
22TODO, in no particular order :
23
24        - Improve the SECURITY document to include good PostgreSQL
25          and OpenLDAP default settings.
26         
27        - Try to talk to education based distribution coordinators
28          (SambaEdu, SkoleLinux, K12LTSP, ...) to see how to
29          better integrate PyKota with these.
30         
31        - Write an IPP message parser, and extract the IPP
32          billing code, job originating hostname and ipp username
33          from job's control files : this would even solve the
34          actual page_log parsing problem.
35       
36        - Allow soft and hard limits to be increased/decreased.
37       
38        - Better --prototype option in edpykota
39       
40        - Web enabled pykotme and dumpykota.
41       
42        - Add a configuration directive to forbid user account
43          creation if the user doesn't exist on the system.
44       
45        - Add an MD5 checksum of the job's datas to the
46          history, to be able to discover duplicate print
47          jobs. This is partially done : the checksum
48          is now computed and exported into the environment
49          variable PYKOTAMD5SUM, but it is not yet saved
50          into the database.
51         
52        - Maybe put "gracedelay" in the database.
53       
54        - Price multiplier/divisor which can be set on a per
55          user or per user group basis.
56
57        - Ink accounting ala PrintBill.
58       
59        - Price and statistics per page format.
60       
61        - Add a description field to users/groups.
62       
63        - Allow the admin to choose an action to take when the database
64          is unavailable (server is down or something like that), so
65          introduce two directives :
66         
67            nodb: accept|reject|hold
68            lognodb: /path/to/file/for/later/batch/update/of/database
69       
70        - CUPS accepts the "STATE: ..." message as backchannel
71          data : use this to tell CUPS what action has been taken
72          for current job.
73         
74        - Add frontbanner and rearbanner directives to pykota.conf
75          This directives will allow the launch (if executable)
76          or the use of the banner path passed as a parameter.
77          If executable, the banner content will be taken from
78          the command's output, else from the banner file
79          directly.
80         
81          Maybe allow frontbanner: +somepath and
82                      frontbanner: -somepath
83          to allow/deny accounting of the banner itself
84          (not sure because may be VERY DIFFICULT !)
85         
86          Matt Hyclak has sent a patch for cupspykota which seems
87          to be ok, but we have to find how to do the same with
88          lprngpykota...
89          Add a "printDenyBanner: once(/path/to/banner)" directive
90                "printDenyBanner: always(/path/to/banner)"
91                "printDenyBanner: never"
92          This requires a database schema change.
93         
94        - Think about some possible client <=> PyKota dialog
95          possibilities, like embedding a small web server in
96          PyKota for example, or something like that.
97       
98        - Log something when --add is used with existing entries.
99          Maybe add a new command line option to force/not force
100          modification of existing entries.
101         
102        - Finish implementation of quota-then-balance and
103          balance-then-quota.
104         
105        - Test and document a possible workaround for knowing
106          if the job is a banner (embed a postscript comment
107          in the banner).
108         
109        - Introduce the pkusers command.
110          pkusers --nogroup
111          pkusers --ingroups gr1,gr2,... --outgroups gr3,gr4,...
112         
113        - Allow the --ingroups command line option to repykota, to
114          report only users members of the specified groups.
115         
116        - Documentation...
117         
118        - Complete web administrative interface with graphical reports.
119       
120        - Group administrators (think quotagrpdmins for disk quotas).
121          Won't be implemented for now.
122         
123        - Multidatabase support, e.g. store users in LDAP, quota 
124          related datas in PostgreSQL, history in text file,
125          and so on... For 2.0, probably not before.
126       
127       
128============================================================
129
130Please e-mail bugs to: alet@librelogiciel.com (Jerome Alet)
Note: See TracBrowser for help on using the browser.