root / pykota / trunk / initscripts / ldap / pykota.schema @ 2317

Revision 2317, 12.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#
3# pykota.schema
4#
5# LDAP Schema for Pykota Quota System
6#
7# Include it in OpenLDAP's configuration file (/etc/ldap/slapd.conf)
8# and restart slapd.
9#
10# Written 2003-05-28 by Wayne Godoy and John Flynn <wgodoy =AT= ub -DOT- edu -DOT- bz>
11#
12# Modified by Jerome Alet 2003-06-01
13#
14# 16868.x       => Conseil Internet & Logiciels Libres
15# 16868.1.x     => Pykota
16# 16868.1.1.x   => attributes
17# 16868.1.2.x   => classes
18#
19# Contributors : Leif Johansson - Stockholm University
20#
21
22#       
23# PyKota Attributes Types
24#
25
26# pykotaLimitBy
27attributetype ( 1.3.6.1.4.1.16868.1.1.1 NAME 'pykotaLimitBy'
28        DESC 'How to limit the user/group : quota or balance'
29        EQUALITY caseIgnoreIA5Match
30        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
31
32# pykotaBalance
33attributetype ( 1.3.6.1.4.1.16868.1.1.2 NAME 'pykotaBalance'
34        DESC 'Current account balance for the user, float'
35        EQUALITY caseIgnoreIA5Match
36        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
37
38# pykotaLifeTimePaid
39attributetype ( 1.3.6.1.4.1.16868.1.1.3 NAME 'pykotaLifeTimePaid'
40        DESC 'Total money paid by the user to fill his account balance, float'
41        EQUALITY caseIgnoreIA5Match
42        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
43
44# pykotaPricePerPage
45attributetype ( 1.3.6.1.4.1.16868.1.1.4 NAME 'pykotaPricePerPage'
46        DESC 'Price per page for a printer, float'
47        EQUALITY caseIgnoreIA5Match
48        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
49
50# pykotaPricePerJob
51attributetype ( 1.3.6.1.4.1.16868.1.1.5 NAME 'pykotaPricePerJob'
52        DESC 'Price per job for a printer, float'
53        EQUALITY caseIgnoreIA5Match
54        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
55
56# pykotaSoftLimit
57attributetype ( 1.3.6.1.4.1.16868.1.1.6 NAME 'pykotaSoftLimit'
58        DESC 'Soft limit in maximal number of pages'
59        EQUALITY caseIgnoreIA5Match
60        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
61       
62# pykotaHardLimit       
63attributetype ( 1.3.6.1.4.1.16868.1.1.7 NAME 'pykotaHardLimit'
64        DESC 'Hard limit in maximal number of pages'
65        EQUALITY caseIgnoreIA5Match
66        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
67
68# pykotaDateLimit
69attributetype ( 1.3.6.1.4.1.16868.1.1.8 NAME 'pykotaDateLimit'
70        DESC 'Date at which the soft limit becomes a hard one'
71        EQUALITY caseIgnoreIA5Match
72        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
73
74# pykotaPageCounter
75attributetype ( 1.3.6.1.4.1.16868.1.1.9 NAME 'pykotaPageCounter'
76        DESC 'Current page counter for the user on a particular printer'
77        EQUALITY integerMatch
78        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
79
80# pykotaLifePageCounter
81attributetype ( 1.3.6.1.4.1.16868.1.1.10 NAME 'pykotaLifePageCounter'
82        DESC 'Total page counter for the user on a particular printer'
83        EQUALITY integerMatch
84        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
85
86# pykotaJobId
87attributetype ( 1.3.6.1.4.1.16868.1.1.11 NAME 'pykotaJobId'
88        DESC 'Id of a job in a printer history of jobs'
89        EQUALITY caseExactIA5Match
90        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
91
92# pykotaPrinterPageCounter
93attributetype ( 1.3.6.1.4.1.16868.1.1.12 NAME 'pykotaPrinterPageCounter'
94        DESC 'Life time page counter of a printer when the job began'
95        EQUALITY integerMatch
96        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
97
98# pykotaJobSize
99attributetype ( 1.3.6.1.4.1.16868.1.1.13 NAME 'pykotaJobSize'
100        DESC 'Current job size in number of pages in the history'
101        EQUALITY integerMatch
102        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
103
104# pykotaAction
105attributetype ( 1.3.6.1.4.1.16868.1.1.14 NAME 'pykotaAction'
106        DESC 'Was the job allowed, or denied : ( "ALLOW" |  "DENY" )'
107        EQUALITY caseExactIA5Match
108        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
109       
110# pykotaPrinterName       
111attributetype ( 1.3.6.1.4.1.16868.1.1.15 NAME 'pykotaPrinterName'
112        DESC 'PyKota printer name as received from the printing subsystem'
113        EQUALITY caseExactIA5Match
114        SUBSTR caseExactIA5SubstringsMatch
115        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
116       
117# pykotaUserName       
118attributetype ( 1.3.6.1.4.1.16868.1.1.16 NAME 'pykotaUserName'
119        DESC 'PyKota user name'
120        EQUALITY caseExactIA5Match
121        SUBSTR caseExactIA5SubstringsMatch
122        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
123       
124# pykotaGroupName       
125attributetype ( 1.3.6.1.4.1.16868.1.1.17 NAME 'pykotaGroupName'
126        DESC 'PyKota group name'
127        EQUALITY caseExactIA5Match
128        SUBSTR caseExactIA5SubstringsMatch
129        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
130       
131# pykotaLastJobIdent       
132attributetype ( 1.3.6.1.4.1.16868.1.1.18 NAME 'pykotaLastJobIdent'
133        DESC 'Identifies the last job in the history'
134        EQUALITY caseExactIA5Match
135        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
136       
137# pykotaFileName       
138attributetype ( 1.3.6.1.4.1.16868.1.1.19 NAME 'pykotaFileName'
139        DESC 'Print job filename'
140        EQUALITY caseExactMatch
141        SUBSTR caseExactSubstringsMatch
142        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
143       
144# pykotaTitle       
145attributetype ( 1.3.6.1.4.1.16868.1.1.20 NAME 'pykotaTitle'
146        DESC 'Print job title'
147        EQUALITY caseIgnoreMatch
148        SUBSTR caseIgnoreSubstringsMatch
149        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
150       
151# pykotaCopies
152attributetype ( 1.3.6.1.4.1.16868.1.1.21 NAME 'pykotaCopies'
153        DESC 'Number of copies of the current print job'
154        EQUALITY integerMatch
155        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
156       
157# pykotaOptions       
158attributetype ( 1.3.6.1.4.1.16868.1.1.22 NAME 'pykotaOptions'
159        DESC 'Print job options'
160        EQUALITY caseIgnoreMatch
161        SUBSTR caseIgnoreSubstringsMatch
162        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
163       
164# pykotaJobPrice
165attributetype ( 1.3.6.1.4.1.16868.1.1.23 NAME 'pykotaJobPrice'
166        DESC 'Price of a particular job in the history, float'
167        EQUALITY caseIgnoreIA5Match
168        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
169
170# pykotaHostName
171attributetype ( 1.3.6.1.4.1.16868.1.1.24 NAME 'pykotaHostName'
172        DESC 'The host the job is coming from'
173        EQUALITY caseIgnoreMatch
174        SUBSTR caseIgnoreSubstringsMatch
175        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{256} )
176       
177# pykotaJobSizeBytes
178attributetype ( 1.3.6.1.4.1.16868.1.1.25 NAME 'pykotaJobSizeBytes'
179        DESC 'Current job size in number of bytes in the history'
180        EQUALITY integerMatch
181        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
182
183# pykotaPayments
184attributetype ( 1.3.6.1.4.1.16868.1.1.26 NAME 'pykotaPayments'
185        DESC 'Stores all payments made by an user, encoded to store both date and amount, separated by a # between two spaces'
186        EQUALITY caseExactIA5Match
187        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
188       
189# pykotaOverCharge
190attributetype ( 1.3.6.1.4.1.16868.1.1.27 NAME 'pykotaOverCharge'
191        DESC 'OverCharging factor for a particular user, float'
192        EQUALITY caseIgnoreIA5Match
193        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
194       
195# pykotaWarnCount
196attributetype ( 1.3.6.1.4.1.16868.1.1.28 NAME 'pykotaWarnCount'
197        DESC 'Number of times the user was warned'
198        EQUALITY integerMatch
199        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
200       
201# pykotaMD5Sum       
202attributetype ( 1.3.6.1.4.1.16868.1.1.29 NAME 'pykotaMD5Sum'
203        DESC 'MD5 Sum of the job datas'
204        EQUALITY caseExactIA5Match
205        SUBSTR caseExactIA5SubstringsMatch
206        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
207       
208# pykotaPages       
209attributetype ( 1.3.6.1.4.1.16868.1.1.30 NAME 'pykotaPages'
210        DESC 'Descriptor for each page settings in the history'
211        EQUALITY caseExactIA5Match
212        SUBSTR caseExactIA5SubstringsMatch
213        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
214       
215# pykotaPrinterCoefficient
216attributetype ( 1.3.6.1.4.1.16868.1.1.31 NAME 'pykotaPrinterCoefficient'
217        DESC 'Coefficient for a particular page format. Contains label # coeff, e.g. A3 # 2.0'
218        EQUALITY caseIgnoreIA5Match
219        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
220
221# pykotaBillingCode
222attributetype ( 1.3.6.1.4.1.16868.1.1.32 NAME 'pykotaBillingCode'
223        DESC 'Optional billing code for the print job'
224        EQUALITY caseIgnoreMatch
225        SUBSTR caseIgnoreSubstringsMatch
226        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
227       
228# pykotaPrecomputedJobSize
229attributetype ( 1.3.6.1.4.1.16868.1.1.33 NAME 'pykotaPrecomputedJobSize'
230        DESC 'Precomputed job size in number of pages in the history'
231        EQUALITY integerMatch
232        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
233
234# pykotaPrecomputedJobPrice
235attributetype ( 1.3.6.1.4.1.16868.1.1.34 NAME 'pykotaPrecomputedJobPrice'
236        DESC 'Precomputed Price of a particular job in the history, float'
237        EQUALITY caseIgnoreIA5Match
238        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
239       
240# pykotaMaxJobSize
241attributetype ( 1.3.6.1.4.1.16868.1.1.35 NAME 'pykotaMaxJobSize'
242        DESC 'Maximum size allowed for a job'
243        EQUALITY integerMatch
244        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
245
246# pykotaTemporaryDenied
247attributetype ( 1.3.6.1.4.1.16868.1.1.36 NAME 'pykotaTemporaryDenied'
248        DESC 'Indicates if the user is temporarily denied to print'
249        SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
250
251# pykotaPassThrough
252attributetype ( 1.3.6.1.4.1.16868.1.1.37 NAME 'pykotaPassThrough'
253        DESC 'Indicates if the printer is in pass through mode'
254        SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE )
255
256#       
257# PyKota Object Classes
258#
259
260# pykotaAccount
261objectclass ( 1.3.6.1.4.1.16868.1.2.1 NAME 'pykotaAccount' SUP top AUXILIARY
262        DESC 'PyKota Auxiliary User Account'
263        MUST ( uid )
264        MAY  ( pykotaUserName $ pykotaLimitBy $ mail $ description ) )
265       
266# pykotaGroup       
267objectclass ( 1.3.6.1.4.1.16868.1.2.2 NAME 'pykotaGroup' SUP top AUXILIARY
268        DESC 'PyKota Auxiliary Group'
269        MUST ( cn )
270        MAY  ( pykotaGroupName $ pykotaLimitBy $ memberUid $ uniqueMember $ member $ description ) )
271       
272# pykotaPrinter       
273objectclass ( 1.3.6.1.4.1.16868.1.2.3 NAME 'pykotaPrinter' SUP top AUXILIARY
274        DESC 'PyKota Printer'
275        MUST ( cn )
276        MAY  ( pykotaMaxJobSize $ pykotaPassThrough $ description $ pykotaPrinterName $ pykotaPricePerPage $ pykotaPricePerJob $ pykotaPrinterCoefficient $ uniqueMember ) )
277       
278# pykotaUserPQuota       
279objectclass ( 1.3.6.1.4.1.16868.1.2.4 NAME 'pykotaUserPQuota' SUP top AUXILIARY
280        DESC 'PyKota User Quota on a Printer'
281        MUST ( cn $ pykotaUserName $ pykotaPrinterName )
282        MAY  ( pykotaMaxJobSize $ pykotaTemporaryDenied $ pykotaPageCounter $ pykotaLifePageCounter $ pykotaSoftLimit $ pykotaHardLimit $ pykotaDateLimit $ pykotaWarnCount ) )
283       
284# pykotaGroupPQuota       
285objectclass ( 1.3.6.1.4.1.16868.1.2.5 NAME 'pykotaGroupPQuota' SUP top AUXILIARY
286        DESC 'PyKota Group Quota on a Printer'
287        MUST ( cn $ pykotaGroupName $ pykotaPrinterName )
288        MAY  ( pykotaMaxJobSize $ pykotaSoftLimit $ pykotaHardLimit $ pykotaDateLimit ) )
289       
290# pykotaJob       
291objectclass ( 1.3.6.1.4.1.16868.1.2.6 NAME 'pykotaJob' SUP top AUXILIARY
292        DESC 'An entry in the job history for a printer'
293        MUST ( cn $ pykotaUserName $ pykotaPrinterName $ pykotaJobId )
294        MAY  ( pykotaPrecomputedJobPrice $ pykotaPrecomputedJobSize $ pykotaBillingCode $ pykotaPrinterPageCounter $ pykotaJobSize $ pykotaAction $ pykotaJobPrice $ pykotaFileName $ pykotaTitle $ pykotaCopies $ pykotaOptions $ pykotaHostName $ pykotaJobSizeBytes $ pykotaMD5Sum $ pykotaPages ) )
295       
296# pykotaAccountBalance
297objectclass ( 1.3.6.1.4.1.16868.1.2.7 NAME 'pykotaAccountBalance' SUP top AUXILIARY
298        DESC 'PyKota User account balance'
299        MAY  ( pykotaUserName $ pykotaBalance $ pykotaLifeTimePaid $ pykotaOverCharge $ pykotaPayments ) )
300       
301# pykotaLastJob       
302objectclass ( 1.3.6.1.4.1.16868.1.2.8 NAME 'pykotaLastJob' SUP top AUXILIARY
303        DESC 'Last job information for a printer'
304        MUST ( pykotaLastJobIdent )
305        MAY ( pykotaPrinterName ) )
306       
307# pykotaBilling
308objectclass ( 1.3.6.1.4.1.16868.1.2.10 NAME 'pykotaBilling' SUP top AUXILIARY
309        DESC 'Allowed billing codes'
310        MUST ( cn $ pykotaBillingCode )
311        MAY ( pykotaPageCounter $ pykotaBalance ) )
312       
313# pykotaObject - Use it if you have to
314objectclass ( 1.3.6.1.4.1.16868.1.2.9 NAME 'pykotaObject' SUP top STRUCTURAL
315        DESC 'PyKota Object'
316        MUST ( cn ) )
317       
318       
Note: See TracBrowser for help on using the browser.