[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kolab-devel
Subject:    [Kolab-devel] Adding features to kolab2.schema
From:       Martin Konold <martin.konold () erfrakon ! de>
Date:       2009-02-26 11:50:46
Message-ID: 200902261250.47814.martin.konold () erfrakon ! de
[Download RAW message or body]

Hi,

I am proposing the attached patch to kolab2.schema and adding some external 
definitions (external.kolab.schema) to the Kolab delivery.

The ideas are following:
- add the following attributes to kolabInetOrgPerson
-- dateOfBirth
-- placeOfBirth
-- birthName
-- gender
-- countryOfCitizenship
-- countryOfResidence
-- legalForm
-- tradeRegisterLocation
-- tradeRegisterIdentifier
-- VATNumber
-- germanTaxId

- and add the following new objectclasses
-- kolabExternalPop3Account 
--- this is useful to integrate agregation of externel pop3 accounts e.g. via 
fetchmail
-- kolabGermanBankArrangement
--- often used for billing etc.

All newly added features and modifications are 100% backwards compatible and 
currently erfrakon.de runs on this enhanced LDAP directory schema.

In general I would like to hear your opinion about the proposed change.

Especially I would like to know if you think that the added complexity of 
seperating legal person (like a company or a foundation) from a natural person 
(individual) is worthwile? 

(I have my doubts because mail for a company is not so much different from 
mail for an individual)


Yours,
-- martin

-- 
e r f r a k o n
Erlewein, Frank, Konold & Partner - Beratende Ingenieure und Physiker
Sitz: Adolfstraße 23, 70469 Stuttgart, Partnerschaftsregister Stuttgart PR 126
http://www.erfrakon.com/

["external.kolab.schema" (text/plain)]

# /kolab/etc/openldap/schema/external.kolab.schema
# LDAP schema extension for Kolab
#
# Prefix for OIDs: depending on source
# Prefix for names: depending on source
# Postfix for object classes: Object
#

# extended from apple.schema
attributetype ( 1.3.6.1.4.1.63.1000.1.1.1.1.27
  NAME ( 'apple-birthday' 'dateOfBirth' 'dateOfIncorporation' )
  DESC 'Birthday or date of incorporation'
  EQUALITY generalizedTimeMatch
  SUBSTR caseExactIA5SubstringsMatch
  SINGLE-VALUE
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )

# from http://www.stroeder.com/stroeder.com.schema
attributetype ( 1.3.6.1.4.1.5427.1.389.4.12 
  NAME ( 'birthPlace' 'placeOfBirth' )
  DESC 'Place of birth'
  SUP l
  SINGLE-VALUE )

# from http://www.stroeder.com/stroeder.com.schema
attributetype ( 1.3.6.1.4.1.5427.1.389.4.14
  NAME 'birthName'
  DESC 'Last name at time of birth, e.g. maiden name'
  SUP sn
  SINGLE-VALUE )

# from http://www.stroeder.com/stroeder.com.schema
# The following data items and codes are used (see ISO 5218):
# 	Not known	0
# 	Male		1
# 	Female		2
# 	Not specified	9
#
attributetype ( 1.3.6.1.4.1.5427.1.389.4.7
  NAME 'gender'
  DESC 'Representation of human sex (see ISO 5218)'
  EQUALITY integerMatch
  SINGLE-VALUE
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{1} )

# from http://www.stroeder.com/stroeder.com.schema
# tax ID of person or company within Germany
#
attributetype ( 1.3.6.1.4.1.5427.1.389.4.666
  NAME 'germanTaxId'
  DESC 'tax ID of person or company within Germany'
  EQUALITY caseIgnoreMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{20} )

# rfc 3039
# ISO 3166 Country Code
# multiple citizenships are possible!
attributetype ( 1.3.6.1.5.5.7.9.4
  NAME 'countryOfCitizenship'
  DESC 'Country of citizenship'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.11 )
  
# ISO 3166 Country Code 
attributetype ( 1.3.6.1.5.5.7.9.5
  NAME 'countryOfResidence'
  DESC 'Country of residence'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.11 )

attributetype ( 1.3.6.1.4.1.5427.1.389.4.661
  NAME 'germanBankAccountNumber'
  DESC 'The 8-digits number of a german bank account without spaces'
  SINGLE-VALUE
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{10} )

attributetype ( 1.3.6.1.4.1.5427.1.389.4.662
  NAME 'germanBankCode'
  DESC 'The 8-digits number of a german bank code (BLZ) without spaces'
  SINGLE-VALUE
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{8} )

attributetype ( 1.3.6.1.4.1.5427.1.389.4.663
  NAME 'germanBankName'
  DESC 'The name of a german bank registered in the BLZ table published by Deutsche \
Bundesbank.'  SUP name
  SINGLE-VALUE )

attributetype ( 1.3.6.1.4.1.5427.1.389.4.664
  NAME 'germanBankAccountInfo'
  DESC 'Composed field containing a one-line human-readable representation of all \
necessary information.'  SINGLE-VALUE
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 1.3.6.1.4.1.5427.1.389.4.665
  NAME 'germanBankAccountHolder'
  DESC 'The name of the holder of a german bank account commonly used as recipient \
name.'  SINGLE-VALUE
  SUP name )

# http://www.daasi.de/
attributetype ( 1.3.6.1.4.1.5062.1.1.3.16
  NAME 'legalForm'
  DESC 'legal form of a company'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SINGLE-VALUE
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# http://www.daasi.de/
# location of the trade register authority
attributetype ( 1.3.6.1.4.1.5062.1.1.3.17
  NAME 'tradeRegisterLocation'
  DESC 'Location of the trade registrar where the organization is registered'
  SUP l
  SINGLE-VALUE )
						               
# http://www.daasi.de/
# registration number a the trade register authority
attributetype ( 1.3.6.1.4.1.5062.1.1.3.18
  NAME 'tradeRegisterIdentifier'
  DESC 'Idientifier with which an organization is registered'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SINGLE-VALUE
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

# https://forxa.mancomun.org/plugins/scmsvn/viewcvs.php/trunk/ldap/dxpisi.schema?annotate=29&root=mancomun
 # VATNumber
# Identifier number for companies and persons. In Spain it is the same as NIF/CIF.
# In Germany it is called Umsatzsteueridentifikationsnummer.
attributetype ( 1.3.6.1.4.1.27994.1.3.4
  NAME 'VATNumber'
  DESC 'Identifier number for companies and persons'
  EQUALITY caseIgnoreMatch
  SUBSTR caseIgnoreSubstringsMatch
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{10} )

objectclass ( 1.3.6.1.4.1.5427.11.3.6.1.4.1.5427.1.389.6.660
  NAME 'germanBankArrangement'
  DESC 'German bank account information'
  SUP top STRUCTURAL
  MUST ( germanBankAccountNumber $ germanBankCode )
  MAY ( germanBankAccountHolder $ germanBankName $ germanBankAccountInfo ) )

# end of external Kolab schema


["kolab2.schema.patch" (text/x-patch)]

Index: kolab2.schema
===================================================================
RCS file: /kolabrepository/server/kolabd/kolabd/kolab2.schema,v
retrieving revision 1.33
diff -u -u -r1.33 kolab2.schema
--- kolab2.schema	30 Jan 2009 12:00:49 -0000	1.33
+++ kolab2.schema	26 Feb 2009 11:17:04 -0000
@@ -1,6 +1,6 @@
 # $Id: kolab2.schema,v 1.33 2009/01/30 12:00:49 thomas Exp $
 # (c) 2003, 2004 Tassilo Erlewein <tassilo.erlewein@erfrakon.de>
-# (c) 2003-2007  Martin Konold <martin.konold@erfrakon.de>
+# (c) 2003-2009  Martin Konold <martin.konold@erfrakon.de>
 # (c) 2003 Achim Frank <achim.frank@erfrakon.de>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -38,6 +38,12 @@
 # include /kolab/etc/openldap/schema/rfc2739.schema
 # include /kolab/etc/openldap/schema/kolab2.schema
 
+# Prefix for OIDs: 1.3.6.1.4.1.19414 <- registered
+# Prefix for OIDs: 1.3.6.1.4.1.19414.2000 <-- temporarily reserved for ob
+# Prefix for attributes: 1.3.6.1.4.1.19414.1
+# Prefix for attributes: 1.3.6.1.4.1.19414.2
+# Prefix for objectclasses: 1.3.6.1.4.1.19414.3
+# nameprefix: kolab
 #
 ####################
 # kolab attributes #
@@ -317,20 +323,136 @@
   SUBSTR caseIgnoreIA5SubstringsMatch
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{512} )
 
-# kolabFolderType describes the kind of Kolab folder
-# as defined in the kolab format specification. 
-# We will annotate all folders with an entry 
-# /vendor/kolab/folder-type containing the attribute 
-# value.shared set to: <type>[.<subtype>]. 
-# The <type> can be: mail, event, journal, task, note, 
-# or contact. The <subtype> for a mail folder can be 
-# inbox, drafts, sentitems, or junkemail (this one holds 
-# spam mails). For the other <type>s, it can only be 
-# default, or not set.  For other types of folders 
-# supported by the clients, these should be prefixed with 
-# "k-" for KMail, "h-" for Horde and "o-" for Outlook, and 
-# look like for example "kolab.o-voicemail". Other third-party
-# clients shall use the "x-" prefix.
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.19
+  NAME 'kolabSalutation'
+  DESC 'Salutation like Mr., Mrs, Herr, Frau)'
+  EQUALITY caseIgnoreMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64} )
+
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.20
+  NAME 'kolabMaritalStatus'
+  DESC 'ledig(0), verh.(1)} DEFAULT ledig'
+  EQUALITY integerMatch
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{1} )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.21
+  NAME ( 'homeFacsimileTelephoneNumber' 'homeFaxNumber' )
+  DESC 'private facsimilie telephone number'
+  SUP telephoneNumber )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.25
+  NAME 'bylawURI'
+  DESC 'URI pointing at the bylaw'
+  SUP labeledURI
+  SINGLE-VALUE )
+
+# Single string with $ seperated lines consisting of
+# surname $
+# givenName $
+# dateOfBirth $
+# restrictions $
+# signer of contract ('true'/'false')
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.27
+  NAME 'legalRepresentative'
+  DESC 'legal representative'
+  EQUALITY caseIgnoreListMatch
+  SUBSTR caseIgnoreListSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )
+
+# Single string with $ seperated lines consisting of
+# surname $
+# givenName $
+# dateOfBirth $
+# restrictions $
+# signer of contract ('true'/'false')
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.28
+  NAME 'commercialProcuration'
+  DESC 'described person which has commercial procuration'
+  EQUALITY caseIgnoreListMatch
+  SUBSTR caseIgnoreListSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.41 )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.29
+  NAME 'legalRepresentationPolicy'
+  DESC 'described how legal representation works'
+  EQUALITY caseIgnoreMatch
+  SUBSTR caseIgnoreSubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.31
+  NAME 'inLiquidation'
+  EQUALITY booleanMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.32
+  NAME 'tradeRegisterRegisteredCapital'
+  EQUALITY integerMatch
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.33
+  NAME 'tradeRegisterType'
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.36
+  NAME 'tradeRegisterURI'
+  SUP labeledURI
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.37
+  NAME 'tradeRegisterLastChangedDate'
+  EQUALITY generalizedTimeMatch
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.38
+  NAME 'kolabGermanBankAccountNumber'
+  DESC 'The 8-digits number of a german bank account without spaces'
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{10} )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.39
+  NAME 'kolabGermanBankCode'
+  DESC 'The 8-digits number of a german bank code (BLZ) without spaces'
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.36{8} )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.40
+  NAME 'kolabGermanBankName'
+  DESC 'The name of a german bank registered in the BLZ table published by Deutsche \
Bundesbank.' +  SUP name
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.41
+  NAME 'kolabGermanBankAccountInfo'
+  DESC 'Composed field containing a one-line human-readable representation of all \
necessary information.' +  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
+
+attributetype ( 1.3.6.1.4.1.19414.1.1.1.42
+  NAME 'kolabGermanBankAccountHolder'
+  DESC 'The name of the holder of a german bank account commonly used as recipient \
name.' +  SINGLE-VALUE
+  SUP name )
+
+# kolabFolderType describes the kind of Kolab folder                                
+# as defined in the kolab format specification.                                     
+# We will annotate all folders with an entry                                        
+# /vendor/kolab/folder-type containing the attribute                                
+# value.shared set to: <type>[.<subtype>].                                          
+# The <type> can be: mail, event, journal, task, note,                              
+# or contact. The <subtype> for a mail folder can be                                
+# inbox, drafts, sentitems, or junkemail (this one holds                            
+# spam mails). For the other <type>s, it can only be                                
+# default, or not set.  For other types of folders                                  
+# supported by the clients, these should be prefixed with                           
+# "k-" for KMail, "h-" for Horde and "o-" for Outlook, and                          
+# look like for example "kolab.o-voicemail". Other third-party                      
+# clients shall use the "x-" prefix.                                              
 # We then use the ANNOTATEMORE IMAP extension to 
 # associate the folder type with a folder.
 attributetype ( 1.3.6.1.4.1.19414.2.1.7
@@ -569,6 +691,81 @@
   NAME 'proftpd-userPassword'
   SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
 
+########################################################################
+# pop3 service attributes (suitable to integrate external pop3 sources #
+########################################################################
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1001
+  NAME 'externalPop3AccountDescription'
+  DESC 'a human readable description of the external POP3 account e.g. my gmail \
account' +  SUP description
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1002
+  NAME 'externalPop3AccountMail'
+  DESC 'email address associated with the external POP3 account e.g. \
givenname.surname@gmail.com' +  SUP mail )
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1003
+  NAME 'externalPop3AccountServer'
+  DESC 'Pop3 server associated with the external POP3 account e.g. \
pop3.provider.com' +  SUP fqdnhostname
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1004
+  NAME 'externalPop3AccountPort'
+  DESC 'TCP port number used for pop3 service associated with the external POP3 \
account e.g. 110' +  EQUALITY integerMatch 
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.27{5} )
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1005
+  NAME 'externalPop3AccountUseSSL'
+  DESC 'boolean defining if SSL must be used for external POP3 account - requires \
suitable externalPop3AccountPort' +  EQUALITY booleanMatch
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1006
+  NAME 'externalPop3AccountUseTLS'
+  DESC 'boolean defining if TLS must be used for external POP3 account'
+  EQUALITY booleanMatch
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
+
+# sometimes useful for self-signed certificates
+attributetype ( 1.3.6.1.4.1.19414.2.1.1007
+  NAME 'externalPop3AccountCheckServerCertificate'
+  DESC 'allows to disable checking server certificates when using SSL or TLS - \
beware of MIT-attacks!' +  EQUALITY booleanMatch
+  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1008
+  NAME 'externalPop3AccountLoginName'
+  DESC 'name used to login into pop3 account often this uid is equivalent to the \
email address' +  SUP uid
+  SINGLE-VALUE )
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1009
+  NAME 'externalPop3EncryptedAccountPassword'
+  DESC 'encryped password for the external POP3 account - secret key must be known \
to the pop3 fetch service' +  SINGLE-VALUE
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.40)
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1010
+  NAME 'externalPop3AccountKeepMailOnServer'
+  DESC 'controls if fetched message shall remain on external POP3 server - beware \
this is often unreliable' +  EQUALITY booleanMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
+
+attributetype ( 1.3.6.1.4.1.19414.2.1.1011
+  NAME 'externalPop3AccountLoginMethod'
+  DESC 'login method used for external POP3 account - currently these are plainText, \
LOGIN, PLAIN, NTLM, DIGEST-MD5, CRAM-MD5, GSSAPI and APOP' +  EQUALITY \
caseIgnoreIA5Match +  SUBSTR caseIgnoreIA5SubstringsMatch
+  SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} )
+
 ########################
 # kolab object classes #
 ########################
@@ -675,6 +872,17 @@
         kolabForwardKeepCopy $
         kolabForwardUCE $
         kolabAllowSMTPRecipient $
+	dateOfBirth $
+	placeOfBirth $
+	birthName $
+	gender $
+        countryOfCitizenship $
+        countryOfResidence $
+	legalForm $
+	tradeRegisterLocation $
+	tradeRegisterIdentifier $
+	VATNumber $
+        germanTaxId $
         kolabDeleteflag $
         kolabComment ) )
 
@@ -711,3 +919,29 @@
   SUP groupOfNames STRUCTURAL
   MAY ( mail $
         kolabDeleteflag ) )
+
+objectclass ( 1.3.6.1.4.1.19414.3.2.6
+  NAME 'kolabExternalPop3Account'
+  DESC 'kolab fetch messages via POP3 from external sources'
+  SUP top STRUCTURAL
+  MUST ( externalPop3AccountServer $
+         externalPop3AccountLoginName $
+	 externalPop3EncryptedAccountPassword )
+  MAY ( externalPop3AccountDescription $
+        externalPop3AccountMail $
+	externalPop3AccountPort $
+	externalPop3AccountUseSSL $
+	externalPop3AccountUseTLS $
+	externalPop3AccountLoginMethod $
+	externalPop3AccountCheckServerCertificate $
+	externalPop3AccountKeepMailOnServer ) )
+
+objectclass ( 1.3.6.1.4.1.19414.3.2.7
+  NAME 'kolabGermanBankArrangement'
+  DESC 'German bank account information'
+  SUP top STRUCTURAL
+  MUST ( kolabGermanBankAccountNumber $ 
+         kolabGermanBankCode )
+  MAY ( kolabGermanBankAccountHolder $ 
+        kolabGermanBankName $ 
+        kolabGermanBankAccountInfo ) )



_______________________________________________
Kolab-devel mailing list
Kolab-devel@kolab.org
https://kolab.org/mailman/listinfo/kolab-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic