root / pykota / trunk / TODO @ 2317

Revision 2317, 4.6 kB (checked in by jerome, 19 years ago)

Big database changes.
Severity : From now on, existing datas have to be migrated
using the appropriate script if needed. LDAP users will need
to use the new schema. Beginning tomorrow, the code will be in
experimental quality instead of stable quality.

  • 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 the listing of the member printers in pkprinters if the printer
25          is a printer group.
26         
27        - Add a new external hook to allow the overwriting of the job's ticket       
28          (mainly username and billing code) at startup time :
29         
30            1 - hook is launched and can do whatever it wants, like asking
31                the user for username+password or billing code
32               
33            2 - hook prints any (or all) of :   
34           
35                USER:some_username
36                BILLING:some_billingcode
37                DENY
38               
39                if hook doesn't print anything, job processed as usual.
40                if DENY, job is rejected.
41               
42            3 - if billing code or username is invalid, and if PyKota
43                is configured to loop in this case, hook is launched
44                again, otherwise job is rejected.
45               
46            4 - if billing code and/or username is valid, the job's
47                billing code and/or username are overwritten with
48                these values, and PyKota processes the job as usual.
49         
50        - Allow several levels of administrative priviledges by allowing
51          files like ~pykota/pykotadmin.someusername.conf (readonly by
52          user 'someusername'), and have the database server deal
53          with the permissions : no need for additionnal code or data
54          in PyKota's database !
55       
56        - Try to talk to education based distribution coordinators
57          (SambaEdu, SkoleLinux, K12LTSP, ...) to see how to
58          better integrate PyKota with these.
59         
60        - Allow soft and hard limits to be increased/decreased.
61       
62        - Add most configuration directives to the database itself,
63          while still allowing to overwrite them with the configuration
64          files at run time.
65       
66        - Ink accounting ala PrintBill.
67       
68        - Price and statistics per page format.
69       
70        - Allow the admin to choose an action to take when the database
71          is unavailable (server is down or something like that), so
72          introduce two directives :
73         
74            nodb: accept|reject|hold
75            lognodb: /path/to/file/for/later/batch/update/of/database
76       
77        - CUPS accepts the "STATE: ..." message as backchannel
78          data : use this to tell CUPS what action has been taken
79          for current job. I did some testing but wasn't able to
80          make it work...
81         
82        - Think about some possible client <=> PyKota dialog
83          possibilities, like embedding a small web server in
84          PyKota for example, or something like that.
85       
86        - Log something when --add is used with existing entries.
87          Maybe add a new command line option to force/not force
88          modification of existing entries.
89         
90        - Finish implementation of quota-then-balance and
91          balance-then-quota.
92         
93        - Introduce the pkusers command.
94          pkusers --nogroup
95          pkusers --ingroups gr1,gr2,... --outgroups gr3,gr4,...
96         
97        - Allow the --ingroups command line option to repykota, to
98          report only users members of the specified groups.
99         
100        - Documentation...
101         
102        - Learn more bits of PHP to help with phpPyKotaAdmin, which
103          is a GREAT tool !
104       
105        - Multidatabase support, e.g. store users in LDAP, quota 
106          related datas in PostgreSQL, history in text file,
107          and so on... For 2.0, probably not before.
108       
109       
110============================================================
111
112Please e-mail bugs to: alet@librelogiciel.com (Jerome Alet)
Note: See TracBrowser for help on using the browser.