# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# this ldif file is provided as a template to illustrate
# use of ldapgroup(s)

version: 1

# add schema to support dynamicgroup
# Generated by Apache Directory Studio on December 19, 2013 11:33:41 AM

# SCHEMA "DYNAMICGROUP"
dn: cn=dynamicgroup, ou=schema
objectclass: metaSchema
objectclass: top
cn: dynamicgroup
m-dependencies: system

dn: ou=attributetypes, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: attributetypes

dn: m-oid=2.16.840.1.113730.3.1.198, ou=attributetypes, cn=dynamicgroup, ou=schema
objectclass: metaAttributeType
objectclass: metaTop
objectclass: top
m-oid: 2.16.840.1.113730.3.1.198
m-name: memberURL
m-description: Identifies an URL associated with each member of a group. Any typ
 e of labeled URL can be used
m-supAttributeType: labeledURI
m-equality: caseIgnoreMatch
m-syntax: 1.3.6.1.4.1.1466.115.121.1.44

dn: ou=comparators, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: comparators

dn: ou=ditcontentrules, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: ditcontentrules

dn: ou=ditstructurerules, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: ditstructurerules

dn: ou=matchingrules, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: matchingrules

dn: ou=matchingruleuse, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: matchingruleuse

dn: ou=nameforms, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: nameforms

dn: ou=normalizers, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: normalizers

dn: ou=objectclasses, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: objectClasses

dn: m-oid=2.16.840.1.113730.3.1.2.33, ou=objectclasses, cn=dynamicgroup, ou=schema
objectclass: metaObjectClass
objectclass: metaTop
objectclass: top
m-oid: 2.16.840.1.113730.3.1.2.33
m-name: groupOfURLs
m-supObjectClass: top
m-must: cn
m-may: memberURL

dn: ou=syntaxcheckers, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: syntaxcheckers

dn: ou=syntaxes, cn=dynamicgroup, ou=schema
objectclass: organizationalUnit
objectclass: top
ou: syntaxes

# end fo schema added to support dynamic group

# Please replace with site specific values
dn: dc=hadoop,dc=apache,dc=org
objectclass: organization
objectclass: dcObject
o: Hadoop
dc: hadoop

# entry for a sample people container
# please replace with site specific values
dn: ou=people,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass:organizationalUnit
ou: people

# entry for a sample end user
# please replace with site specific values
dn: uid=guest,ou=people,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass:person
objectclass:organizationalPerson
objectclass:inetOrgPerson
cn: Guest
sn: User
uid: guest
userPassword:guest-password

# entry for sample user sam
dn: uid=sam,ou=people,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass:person
objectclass:organizationalPerson
objectclass:inetOrgPerson
cn: sam
sn: sam
uid: sam
userPassword:sam-password

# entry for sample user tom
dn: uid=tom,ou=people,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass:person
objectclass:organizationalPerson
objectclass:inetOrgPerson
cn: tom
sn: tom
uid: tom
userPassword:tom-password

# entry for sample user bob with title: director 
# would be a member of a dynamic group based on title: director
dn: uid=bob,ou=people,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass:person
objectclass:organizationalPerson
objectclass:inetOrgPerson
cn: bob
sn: bob
uid: bob
userPassword:bob-password
title: director

dn: ou=contractors,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass:organizationalUnit
ou: contractors

# entry for sample user joe with title: director 
# would be a member of a dynamic group based on title: director
dn: uid=joe,ou=contractors,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass:person
objectclass:organizationalPerson
objectclass:inetOrgPerson
cn: joe
sn: joe
uid: joe
userPassword: joe-password
title: director

# create FIRST Level groups branch
dn: ou=groups,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass:organizationalUnit
ou: groups
description: generic groups branch

# create the analyst group under groups
dn: cn=analyst,ou=groups,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass: groupofnames
cn: analyst
description:analyst  group
member: uid=sam,ou=people,dc=hadoop,dc=apache,dc=org
member: uid=tom,ou=people,dc=hadoop,dc=apache,dc=org

# create the scientist group under groups
dn: cn=scientist1,ou=groups,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass: groupofnames
cn: scientist1
description: scientist group
member: uid=sam,ou=people,dc=hadoop,dc=apache,dc=org

# create the directors group under groups
dn: cn=directors,ou=groups,dc=hadoop,dc=apache,dc=org
objectclass:top
objectclass: groupOfurls
cn: directors
memberurl: ldap:///dc=hadoop,dc=apache,dc=org??sub?(title=director)
