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
RevLine 
[1015]1# $Id$
2#
3# pykota.schema
4#
5# LDAP Schema for Pykota Quota System
6#
[1098]7# Include it in OpenLDAP's configuration file (/etc/ldap/slapd.conf)
8# and restart slapd.
9#
[1015]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#
[1108]19# Contributors : Leif Johansson - Stockholm University
[1017]20#
[1015]21
[1017]22#       
23# PyKota Attributes Types
24#
[1015]25
[1017]26# pykotaLimitBy
[1015]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
[1017]32# pykotaBalance
[1015]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
[1017]38# pykotaLifeTimePaid
[1015]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
[1017]44# pykotaPricePerPage
[1015]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
[1017]50# pykotaPricePerJob
[1015]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
[1017]56# pykotaSoftLimit
57attributetype ( 1.3.6.1.4.1.16868.1.1.6 NAME 'pykotaSoftLimit'
[1015]58        DESC 'Soft limit in maximal number of pages'
[1041]59        EQUALITY caseIgnoreIA5Match
60        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[1015]61       
[1017]62# pykotaHardLimit       
63attributetype ( 1.3.6.1.4.1.16868.1.1.7 NAME 'pykotaHardLimit'
[1015]64        DESC 'Hard limit in maximal number of pages'
[1041]65        EQUALITY caseIgnoreIA5Match
66        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[1015]67
[1017]68# pykotaDateLimit
69attributetype ( 1.3.6.1.4.1.16868.1.1.8 NAME 'pykotaDateLimit'
[1015]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
[1017]74# pykotaPageCounter
75attributetype ( 1.3.6.1.4.1.16868.1.1.9 NAME 'pykotaPageCounter'
[1015]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
[1017]80# pykotaLifePageCounter
81attributetype ( 1.3.6.1.4.1.16868.1.1.10 NAME 'pykotaLifePageCounter'
[1015]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
[1017]86# pykotaJobId
87attributetype ( 1.3.6.1.4.1.16868.1.1.11 NAME 'pykotaJobId'
[1015]88        DESC 'Id of a job in a printer history of jobs'
[1017]89        EQUALITY caseExactIA5Match
90        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[1015]91
[1017]92# pykotaPrinterPageCounter
93attributetype ( 1.3.6.1.4.1.16868.1.1.12 NAME 'pykotaPrinterPageCounter'
[1015]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
[1017]98# pykotaJobSize
99attributetype ( 1.3.6.1.4.1.16868.1.1.13 NAME 'pykotaJobSize'
[1015]100        DESC 'Current job size in number of pages in the history'
[1200]101        EQUALITY integerMatch
102        SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE )
[1015]103
[1017]104# pykotaAction
105attributetype ( 1.3.6.1.4.1.16868.1.1.14 NAME 'pykotaAction'
[1018]106        DESC 'Was the job allowed, or denied : ( "ALLOW" |  "DENY" )'
107        EQUALITY caseExactIA5Match
[1015]108        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
109       
[1017]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'
[1200]113        EQUALITY caseExactIA5Match
114        SUBSTR caseExactIA5SubstringsMatch
[1015]115        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
[1017]116       
117# pykotaUserName       
118attributetype ( 1.3.6.1.4.1.16868.1.1.16 NAME 'pykotaUserName'
119        DESC 'PyKota user name'
120        EQUALITY caseExactIA5Match
[1200]121        SUBSTR caseExactIA5SubstringsMatch
[1017]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
[1200]128        SUBSTR caseExactIA5SubstringsMatch
[1017]129        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
130       
[1018]131# pykotaLastJobIdent       
132attributetype ( 1.3.6.1.4.1.16868.1.1.18 NAME 'pykotaLastJobIdent'
133        DESC 'Identifies the last job in the history'
[1017]134        EQUALITY caseExactIA5Match
135        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
136       
[1200]137# pykotaFileName       
138attributetype ( 1.3.6.1.4.1.16868.1.1.19 NAME 'pykotaFileName'
139        DESC 'Print job filename'
[1455]140        EQUALITY caseExactMatch
141        SUBSTR caseExactSubstringsMatch
142        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
[1200]143       
144# pykotaTitle       
145attributetype ( 1.3.6.1.4.1.16868.1.1.20 NAME 'pykotaTitle'
146        DESC 'Print job title'
[1455]147        EQUALITY caseIgnoreMatch
148        SUBSTR caseIgnoreSubstringsMatch
149        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
[1200]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'
[1480]160        EQUALITY caseIgnoreMatch
161        SUBSTR caseIgnoreSubstringsMatch
162        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
[1200]163       
[1203]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
[1473]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} )
[1520]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 )
[1473]182
[1520]183# pykotaPayments
184attributetype ( 1.3.6.1.4.1.16868.1.1.26 NAME 'pykotaPayments'
[1522]185        DESC 'Stores all payments made by an user, encoded to store both date and amount, separated by a # between two spaces'
[1520]186        EQUALITY caseExactIA5Match
187        SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
[1996]188       
[2054]189# pykotaOverCharge
190attributetype ( 1.3.6.1.4.1.16868.1.1.27 NAME 'pykotaOverCharge'
191        DESC 'OverCharging factor for a particular user, float'
[1996]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'
[1997]203        DESC 'MD5 Sum of the job datas'
[1996]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'
[1997]210        DESC 'Descriptor for each page settings in the history'
[1996]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 )
[1520]220
[2024]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       
[2317]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 )
[1996]233
[2317]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
[1017]256#       
257# PyKota Object Classes
258#
[1015]259
[1223]260# pykotaAccount
[1017]261objectclass ( 1.3.6.1.4.1.16868.1.2.1 NAME 'pykotaAccount' SUP top AUXILIARY
[1015]262        DESC 'PyKota Auxiliary User Account'
[1018]263        MUST ( uid )
[2317]264        MAY  ( pykotaUserName $ pykotaLimitBy $ mail $ description ) )
[1015]265       
[1017]266# pykotaGroup       
[1015]267objectclass ( 1.3.6.1.4.1.16868.1.2.2 NAME 'pykotaGroup' SUP top AUXILIARY
268        DESC 'PyKota Auxiliary Group'
[1018]269        MUST ( cn )
[2317]270        MAY  ( pykotaGroupName $ pykotaLimitBy $ memberUid $ uniqueMember $ member $ description ) )
[1015]271       
[1017]272# pykotaPrinter       
273objectclass ( 1.3.6.1.4.1.16868.1.2.3 NAME 'pykotaPrinter' SUP top AUXILIARY
[1015]274        DESC 'PyKota Printer'
[1018]275        MUST ( cn )
[2317]276        MAY  ( pykotaMaxJobSize $ pykotaPassThrough $ description $ pykotaPrinterName $ pykotaPricePerPage $ pykotaPricePerJob $ pykotaPrinterCoefficient $ uniqueMember ) )
[1015]277       
[1017]278# pykotaUserPQuota       
279objectclass ( 1.3.6.1.4.1.16868.1.2.4 NAME 'pykotaUserPQuota' SUP top AUXILIARY
[1015]280        DESC 'PyKota User Quota on a Printer'
[1017]281        MUST ( cn $ pykotaUserName $ pykotaPrinterName )
[2317]282        MAY  ( pykotaMaxJobSize $ pykotaTemporaryDenied $ pykotaPageCounter $ pykotaLifePageCounter $ pykotaSoftLimit $ pykotaHardLimit $ pykotaDateLimit $ pykotaWarnCount ) )
[1015]283       
[1017]284# pykotaGroupPQuota       
285objectclass ( 1.3.6.1.4.1.16868.1.2.5 NAME 'pykotaGroupPQuota' SUP top AUXILIARY
[1015]286        DESC 'PyKota Group Quota on a Printer'
[1017]287        MUST ( cn $ pykotaGroupName $ pykotaPrinterName )
[2317]288        MAY  ( pykotaMaxJobSize $ pykotaSoftLimit $ pykotaHardLimit $ pykotaDateLimit ) )
[1015]289       
[1017]290# pykotaJob       
291objectclass ( 1.3.6.1.4.1.16868.1.2.6 NAME 'pykotaJob' SUP top AUXILIARY
[1015]292        DESC 'An entry in the job history for a printer'
[1017]293        MUST ( cn $ pykotaUserName $ pykotaPrinterName $ pykotaJobId )
[2317]294        MAY  ( pykotaPrecomputedJobPrice $ pykotaPrecomputedJobSize $ pykotaBillingCode $ pykotaPrinterPageCounter $ pykotaJobSize $ pykotaAction $ pykotaJobPrice $ pykotaFileName $ pykotaTitle $ pykotaCopies $ pykotaOptions $ pykotaHostName $ pykotaJobSizeBytes $ pykotaMD5Sum $ pykotaPages ) )
[1015]295       
[1017]296# pykotaAccountBalance
297objectclass ( 1.3.6.1.4.1.16868.1.2.7 NAME 'pykotaAccountBalance' SUP top AUXILIARY
298        DESC 'PyKota User account balance'
[2054]299        MAY  ( pykotaUserName $ pykotaBalance $ pykotaLifeTimePaid $ pykotaOverCharge $ pykotaPayments ) )
[1017]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'
[1018]304        MUST ( pykotaLastJobIdent )
305        MAY ( pykotaPrinterName ) )
[1017]306       
[2317]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       
[1018]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'
[1017]316        MUST ( cn ) )
317       
318       
Note: See TracBrowser for help on using the browser.