root / pykota / trunk / TODO @ 2308

Revision 2308, 6.0 kB (checked in by jerome, 19 years ago)

Extended syntax for the denyduplicates directive : it now
allows any external command to be launched, which will decide
if the dupes should be allowed or not.

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