root / pykota / trunk / TODO @ 2307

Revision 2307, 6.5 kB (checked in by jerome, 19 years ago)

Added the striptitle directive.

  • 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, 2005 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
20============================================================
21
22TODO, in no particular order :
23       
24        - Allow 'external' syntax for denyduplicates :
25       
26            in pykota.conf, if denyduplicates is set to :
27 
28              - yes ==> then duplicates are denied silently (with a log)
29              - no (or unset) ==> then duplicates are allowed (without a log)
30              - external(some_command_here) then the command is launched
31                and its output is parsed, it may contain only ALLOW or DENY.
32                And it should handle the dialog with the user, if any.
33               
34        - Add a new external hook to allow the overwriting of the job's ticket       
35          (mainly username and billing code) at startup time :
36         
37            1 - hook is launched and can do whatever it wants, like asking
38                the user for username+password or billing code
39               
40            2 - hook prints any (or all) of :   
41           
42                USER:some_username
43                BILLING:some_billingcode
44                DENY
45               
46                if hook doesn't print anything, job processed as usual.
47                if DENY, job is rejected.
48               
49            3 - if billing code or username is invalid, and if PyKota
50                is configured to loop in this case, hook is launched
51                again, otherwise job is rejected.
52               
53            4 - if billing code and/or username is valid, the job's
54                billing code and/or username are overwritten with
55                these values, and PyKota processes the job as usual.
56         
57        - Add a table listing all the allowed billing codes. Unknown
58          billing codes should produce an action which is configurable
59          (reject the job being the default). The billing codes table
60          will contains total pages and cost, and life time pages
61          and cost => speedup for LDAP, and allows people to cleanup
62          the printing history in any case. A tool to manage the
63          table of billing codes must be written, but this will
64          be easy.
65         
66        - Pass-through mode for printers : history correctly filled (including
67          job size) but no impact on user's page counter or account
68          balance : this is meant to be a temporary situation for
69          a printer to be in pass-through mode, for example during
70          an exam where the faculty pays for the printouts and we
71          don't want our users to complain about their credits being
72          "eaten" for mandatory printouts.
73         
74        - Allow several levels of administrative priviledges by allowing
75          files like ~pykota/pykotadmin.someusername.conf (readonly by
76          user 'someusername'), and have the database server deal
77          with the permissions : no need for additionnal code or data
78          in PyKota's database !
79       
80        - Add a "printing denied" indicator on user print quota entries, 
81          to temporarily forbid an user to print on a particular printer.
82         
83        - Maybe per user "denyduplicates" : my 5 years old daughter
84          just prints again when the printer is off...
85         
86        - Now that the job size is ALWAYS precomputed, add a
87          MaxJobSize attribute to users and groups (printers as
88          well, maybe ?) to limit each job's size if needed.
89         
90        - Add precomputed job size (and price) to the history for
91          controlling purpose.
92         
93        - Try to talk to education based distribution coordinators
94          (SambaEdu, SkoleLinux, K12LTSP, ...) to see how to
95          better integrate PyKota with these.
96         
97        - Allow soft and hard limits to be increased/decreased.
98       
99        - Add most configuration directives to the database itself,
100          while still allowing to overwrite them with the configuration
101          files at run time.
102       
103        - Ink accounting ala PrintBill.
104       
105        - Price and statistics per page format.
106       
107        - Add a description field to users/groups.
108       
109        - Allow the admin to choose an action to take when the database
110          is unavailable (server is down or something like that), so
111          introduce two directives :
112         
113            nodb: accept|reject|hold
114            lognodb: /path/to/file/for/later/batch/update/of/database
115       
116        - CUPS accepts the "STATE: ..." message as backchannel
117          data : use this to tell CUPS what action has been taken
118          for current job. I did some testing but wasn't able to
119          make it work...
120         
121        - Think about some possible client <=> PyKota dialog
122          possibilities, like embedding a small web server in
123          PyKota for example, or something like that.
124       
125        - Log something when --add is used with existing entries.
126          Maybe add a new command line option to force/not force
127          modification of existing entries.
128         
129        - Finish implementation of quota-then-balance and
130          balance-then-quota.
131         
132        - Introduce the pkusers command.
133          pkusers --nogroup
134          pkusers --ingroups gr1,gr2,... --outgroups gr3,gr4,...
135         
136        - Allow the --ingroups command line option to repykota, to
137          report only users members of the specified groups.
138         
139        - Documentation...
140         
141        - Learn more bits of PHP to help with phpPyKotaAdmin, which
142          is a GREAT tool !
143       
144        - Multidatabase support, e.g. store users in LDAP, quota 
145          related datas in PostgreSQL, history in text file,
146          and so on... For 2.0, probably not before.
147       
148       
149============================================================
150
151Please e-mail bugs to: alet@librelogiciel.com (Jerome Alet)
Note: See TracBrowser for help on using the browser.