root / pykota / trunk / TODO @ 2368

Revision 2368, 4.9 kB (checked in by jerome, 19 years ago)

Added an item about database caching.
Severity: really minor, could eventually create accuracy problems or errors

with future versions of the code.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
RevLine 
[737]1# $Id$
2
[952]3PyKota - Print Quota for CUPS and LPRng
[737]4
[2028]5(c) 2003, 2004, 2005 Jerome Alet <alet@librelogiciel.com>
[873]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.
[737]10
[873]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.
[737]15
[873]16You should have received a copy of the GNU General Public License
17along with this program; if not, write to the Free Software
[2303]18Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
[873]19
[737]20============================================================
21
[1322]22TODO, in no particular order :
[2256]23       
[2368]24        - Ensure that deleted or modified entries are flushed from the cache.
25       
[2323]26        - Adds configurability to what happens when the user/group doesn't exist
[2325]27          when running edpykota. Rewrite the main loop to be able to abort
28          early, before any modification has taken place.
[2323]29         
[2315]30        - Add the listing of the member printers in pkprinters if the printer
31          is a printer group.
32         
[2304]33        - Add a new external hook to allow the overwriting of the job's ticket       
34          (mainly username and billing code) at startup time :
[2291]35         
[2304]36            1 - hook is launched and can do whatever it wants, like asking
37                the user for username+password or billing code
38               
39            2 - hook prints any (or all) of :   
40           
41                USER:some_username
42                BILLING:some_billingcode
43                DENY
44               
45                if hook doesn't print anything, job processed as usual.
46                if DENY, job is rejected.
47               
48            3 - if billing code or username is invalid, and if PyKota
49                is configured to loop in this case, hook is launched
50                again, otherwise job is rejected.
51               
52            4 - if billing code and/or username is valid, the job's
53                billing code and/or username are overwritten with
54                these values, and PyKota processes the job as usual.
55         
[2208]56        - Allow several levels of administrative priviledges by allowing
57          files like ~pykota/pykotadmin.someusername.conf (readonly by
58          user 'someusername'), and have the database server deal
59          with the permissions : no need for additionnal code or data
60          in PyKota's database !
61       
[1882]62        - Try to talk to education based distribution coordinators
63          (SambaEdu, SkoleLinux, K12LTSP, ...) to see how to
64          better integrate PyKota with these.
65         
[1876]66        - Allow soft and hard limits to be increased/decreased.
67       
[2212]68        - Add most configuration directives to the database itself,
69          while still allowing to overwrite them with the configuration
70          files at run time.
[1844]71       
[1634]72        - Ink accounting ala PrintBill.
73       
[1679]74        - Price and statistics per page format.
75       
[1598]76        - Allow the admin to choose an action to take when the database
[1892]77          is unavailable (server is down or something like that), so
[1598]78          introduce two directives :
79         
80            nodb: accept|reject|hold
81            lognodb: /path/to/file/for/later/batch/update/of/database
82       
[1585]83        - CUPS accepts the "STATE: ..." message as backchannel
84          data : use this to tell CUPS what action has been taken
[2212]85          for current job. I did some testing but wasn't able to
86          make it work...
[1585]87         
[1501]88        - Think about some possible client <=> PyKota dialog
89          possibilities, like embedding a small web server in
[1507]90          PyKota for example, or something like that.
[1501]91       
92        - Log something when --add is used with existing entries.
93          Maybe add a new command line option to force/not force
94          modification of existing entries.
95         
[1440]96        - Finish implementation of quota-then-balance and
97          balance-then-quota.
98         
[1640]99        - Introduce the pkusers command.
100          pkusers --nogroup
[1378]101          pkusers --ingroups gr1,gr2,... --outgroups gr3,gr4,...
[1370]102         
[1319]103        - Allow the --ingroups command line option to repykota, to
104          report only users members of the specified groups.
105         
[1157]106        - Documentation...
107         
[2054]108        - Learn more bits of PHP to help with phpPyKotaAdmin, which
109          is a GREAT tool !
[1045]110       
[1385]111        - Multidatabase support, e.g. store users in LDAP, quota 
112          related datas in PostgreSQL, history in text file,
113          and so on... For 2.0, probably not before.
[737]114       
115       
116============================================================
117
118Please e-mail bugs to: alet@librelogiciel.com (Jerome Alet)
Note: See TracBrowser for help on using the browser.