# master slapd config -- for testing
# $OpenLDAP: pkg/ldap/tests/data/slapd-acl.conf,v 1.46.2.4 2003/12/15 22:05:29
  kurt Exp $
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
## Copyright 1998-2005 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted only as authorized by the OpenLDAP
## Public License.
##
## A copy of this license is available in the file LICENSE in the
## top-level directory of the distribution or, alternatively, at
## <http://www.OpenLDAP.org/license.html>.

include ./schema/core.schema
include ./schema/cosine.schema
include ./schema/inetorgperson.schema
include ./schema/openldap.schema
include ./schema/nis.schema
pidfile     ./testrun/slapd.1.pid
argsfile    ./testrun/slapd.1.args

# global ACLs
#
# normal installations should protect root dse, cn=monitor, cn=subschema
#

access		to dn.exact="" attr=objectClass
		by users read
access		to *
		by * read

#mod#modulepath	../servers/slapd/back-@BACKEND@/
#mod#moduleload	back_@BACKEND@.la
#monitormod#modulepath ../servers/slapd/back-monitor/
#monitormod#moduleload back_monitor.la

#######################################################################
# database definitions
#######################################################################

database	@BACKEND@
#ldbm#cachesize	0
suffix		"dc=example,dc=com"
directory	./testrun/db.1.a
rootdn		"cn=Manager,dc=example,dc=com"
rootpw		secret
#ldbm#index		objectClass	eq
#ldbm#index		cn,sn,uid	pres,eq,sub
#bdb#index		objectClass	eq
#bdb#index		cn,sn,uid	pres,eq,sub

#access		to attr=objectclass dn.subtree="dc=example,dc=com"
access		to attr=objectclass
		by * =rsc stop

#access		to filter="(objectclass=person)" attr=userpassword dn.subtree="dc=example,dc=com"
access		to filter="(objectclass=person)" attr=userpassword
		by anonymous auth
		by self =wx

access		to dn.children="ou=Alumni Association,ou=People,dc=example,dc=com"
		by dn.regex=".+,dc=example,dc=com" +c continue
		by dn.subtree="dc=example,dc=com" +rs continue
		by * stop

#access		to attr=member,uniquemember dn.subtree="dc=example,dc=com"
access		to attr=member,uniquemember
		by dnattr=member selfwrite
		by dnattr=uniquemember selfwrite
		by * read

#access		to attr=member,uniquemember filter="(mail=*com)" dn.subtree="dc=example,dc=com"
access		to attr=member,uniquemember filter="(mail=*com)"
		by * read

#access		to filter="(|(objectclass=groupofnames)(objectClass=groupofuniquenames))" dn.subtree="dc=example,dc=com"
access		to filter="(|(objectclass=groupofnames)(objectClass=groupofuniquenames))"
		by dn.exact="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com" =sc continue
		by dn.regex="^cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com$" +rw stop
		by * break

access		to dn.children="ou=Information Technology Division,ou=People,dc=example,dc=com"
		by group/groupOfUniqueNames/uniqueMember.exact="cn=ITD Staff,ou=Groups,dc=example,dc=com" write
		by * read

access		to dn.exact="cn=Alumni Assoc Staff,ou=Groups,dc=example,dc=com"
		by set="[cn=Alumni Assoc Staff,ou=Groups,dc=example,dc=com]/member* & user" write
		by * read

#access		to filter="(name=X*Y*Z)" dn.subtree="dc=example,dc=com"
access		to filter="(name=X*Y*Z)"
		by * continue

# fall into global ACLs

#monitor#database monitor
