## ---------------------------------------------------------------------------
## 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.
## ---------------------------------------------------------------------------

version: 1

dn: o=nifi
objectclass: extensibleObject
objectclass: top
objectclass: domain
dc: nifi
o: nifi

dn: ou=users,o=nifi
objectClass: organizationalUnit
objectClass: top
ou: users

dn: ou=users-2,o=nifi
objectClass: organizationalUnit
objectClass: top
ou: users-2

dn: cn=User 1,ou=users,o=nifi
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: User 1
sn: User1
uid: user1

dn: cn=User 2,ou=users,o=nifi
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: User 2
sn: User2
uid: user2

dn: cn=User 3,ou=users,o=nifi
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: User 3
sn: User3
uid: user3

## since the embedded ldap does not support memberof, we are using description to simulate

dn: cn=User 4,ou=users,o=nifi
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: User 4
sn: User4
description: cn=team1,ou=groups,o=nifi
uid: user4

dn: cn=User 5,ou=users,o=nifi
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: User 5
sn: User5
description: cn=team1,ou=groups,o=nifi
uid: user5

dn: cn=User 6,ou=users,o=nifi
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: User 6
sn: User6
description: cn=team2,ou=groups,o=nifi
uid: user6

dn: cn=User 7,ou=users,o=nifi
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: User 7
sn: User7
description: cn=team2,ou=groups,o=nifi
uid: user7

dn: cn=User 8,ou=users,o=nifi
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: User 8
sn: User8
uid: user8

dn: cn=User 9,ou=users-2,o=nifi
objectClass: organizationalPerson
objectClass: person
objectClass: inetOrgPerson
objectClass: top
cn: User 9
sn: User9
description: team3
uid: user9

dn: ou=groups,o=nifi
objectClass: organizationalUnit
objectClass: top
ou: groups

dn: ou=groups-2,o=nifi
objectClass: organizationalUnit
objectClass: top
ou: groups

dn: cn=admins,ou=groups,o=nifi
objectClass: groupOfNames
objectClass: top
cn: admins
member: cn=User 1,ou=users,o=nifi
member: cn=User 3,ou=users,o=nifi

dn: cn=read-only,ou=groups,o=nifi
objectClass: groupOfNames
objectClass: top
cn: read-only
member: cn=User 2,ou=users,o=nifi

dn: cn=team1,ou=groups,o=nifi
objectClass: groupOfNames
objectClass: top
cn: team1
member: cn=User 1,ou=users,o=nifi

dn: cn=team2,ou=groups,o=nifi
objectClass: groupOfNames
objectClass: top
cn: team2
member: cn=User 1,ou=users,o=nifi

## since the embedded ldap requires member to be fqdn, we are simulating using room and description

dn: cn=team3,ou=groups-2,o=nifi
objectClass: room
objectClass: top
cn: team3
description: user9
