Ticket 47653 - Need a way to allow users to create entries assigned to themselves.

Bug Description:
        Users need to be able to create, edit and delete their own entries.
        An entry (i.e. cn=token1_user1234,dc=example,dc=com) has an attribute (i.e. ipatokenOwner)
        that contains the entry DN of the user (i.e. uid=user1234,dc=example,dc=com).
        Being bound as 'uid=user1234,dc=example,dc=com', we should be able to
        any ldap operation on 'user1234' entries like cn=token1_user1234.

Fix Description:
        It adds a BindRule: SELFDN, implemented in DS_LASUserDnAttrEval (called by DS_LASUserAttrEval).
        The syntax in the aci is :
                <userattr> = <attribute>#SELFDN
        If the BindDN (lasinfo.clientDn) exists in entry.<attribute>
        (lasinfo.resourceEntry[attrName]), then the aci matched

https://fedorahosted.org/389/ticket/47653

Reviewed by: Ludwig Krispenz, Rich Megginson

Platforms tested: F17/F19(jenkins)

Flag Day: no

Doc impact: no
Ticket #47570 - slapi_ldap_init unusable during independent plugin development

Description:
RFE: making slapi_ldap_init callable without snmp_collator_init.
The api slapi_ldap_init calls set_snmp_interaction_row, in which
interaction_table_mutex is held.  This patch replaces NSPR PR_(Un)Lock with
slapi_(un)lock_mutex.  The slapi_(un)lock_mutex skips locking if the mutex
is not initialized.

https://fedorahosted.org/389/ticket/47570

Reviewed by rmeggins@redhat.com (Thank you, Rich!!)
Ticket #47374 - flush.pl is not included in perl5

https://fedorahosted.org/389/ticket/47374
Reviewed by: nhosoi (Thanks!)
Branch: master
Fix Description: Change opt_b to BeginNum and opt_r to Random_Seed.
Have to specify option as j=i because -j has an integer argument.
Get rid of opt_j and use ZeroPad instead.
Platforms tested: RHEL6 x86_64
Flag Day: no
Doc impact: no
Ticket #471 logconv.pl tool removes the access logs contents if "-M" is not correctly used

https://fedorahosted.org/389/ticket/471
Reviewed by: nhosoi (Thanks!)
Branch: master
Fix Description: Do not call new_stats_block() until we verify that it is safe
to call it.  It will wipe out the file.
Platforms tested: RHEL6 x86_64
Flag Day: no
Doc impact: no
Ticket 47618 - Enable normalized DN cache by default

Enable the normalized DN cache by default as there is a performance boost,
especially with roles.  Enable cache for upgrades as well.

https://fedorahosted.org/389/ticket/47618

Reviewed by: rmeggins(Thanks!)
Ticket 47676 : Replication of the schema fails 'master branch' -> 1.2.11 or 1.3.1

Bug Description:

	Since https://fedorahosted.org/389/ticket/47490 and https://fedorahosted.org/389/ticket/47541 a supplier schema is
	pushed to the consumer at the condition that the consumer schema is not a superset of the supplier schema.

	With https://fedorahosted.org/389/ticket/47647, the objectclass 'print-uri' has been removed from master.
	Starting in 1.3.1, unhashed#user#password pseudo attribute as been removed from the schema.

	A consequence is that replication of the schema fails: master->1.2.11 and master->1.3.1

Fix Description:

	Replication plugin initialization (multimaster_start) creates the three following entries
		dn: cn=replSchema,cn=config
		objectClass: top
		objectClass: nsSchemaPolicy
		cn: replSchema

		dn: cn=consumerUpdatePolicy,cn=replSchema,cn=config
		objectClass: top
		objectClass: nsSchemaPolicy
		cn: consumerUpdatePolicy
		schemaUpdateObjectclassAccept: printer-uri-oid
		schemaUpdateAttributeAccept: 2.16.840.1.113730.3.1.2110
		schemaUpdateObjectclassReject: dummy-objectclass-name
		schemaUpdateAttributeReject: dummy-attribute-name

		dn: cn=supplierUpdatePolicy,cn=replSchema,cn=config
		objectClass: top
		objectClass: nsSchemaPolicy
		cn: supplierUpdatePolicy
		schemaUpdateObjectclassAccept: printer-uri-oid
		schemaUpdateAttributeAccept: 2.16.840.1.113730.3.1.2110
		schemaUpdateObjectclassReject: dummy-objectclass-name
		schemaUpdateAttributeReject: dummy-attribute-name

	schemaUpdateObjectclassAccept, schemaUpdateAttributeAccept, schemaUpdateObjectclassReject and schemaUpdateAttributeReject
	are optional multi-valued attribute.
	The values are strings representing objectclass/attribute name or OID.

	During a replication session, if the consumer schema needs to be updated (because nsSchemaCSN differs) the checkings are:
		On supplier side:
			OBJECTCLASSES
			For each objectclass OC in the consumer schema:
			if it exists in 'cn=supplierUpdatePolicy,cn=replSchema,cn=config'
				schemaUpdateObjectclassAccept: <oc_name or oc_oid>
				then this OC is "accepted" without checking that
					- OC exists in supplier schema
					- supplier's OC >= consumer's OC

				schemaUpdateObjectclassReject: <oc_name or oc_oid>
				then the supplier schema is not pushed (rejected)

			If none of these values exists, then it does the "normal" processing to determine if the schema can be updated:
				(if Supplier's OC < consumer's OC then schema is not pushed)

			ATTRIBUTES
			It does the same processing as above for each attribute, looking for values
				schemaUpdateAttributeAccept and schemaUpdateAttributeReject

		On consumer side:

			OBJECTCLASSES
			It does the same processing as above for each OC in the supplier schema, checking against
			entry 'cn=consumerUpdatePolicy,cn=replSchema,cn=config'

			ATTRIBUTES
			It does the same processing as above for each AT in the supplier schema, checking against
			entry 'cn=consumerUpdatePolicy,cn=replSchema,cn=config'

https://fedorahosted.org/389/ticket/47676

Reviewed by: Rich Megginson (Thanks Rich!)

Platforms tested: F17/F19(jenkins)

Flag Day: no

Doc impact: no
Ticket 47676 : (cont.) Replication of the schema fails 'master branch' -> 1.2.11 or 1.3.1

Bug Description:
	Pick up the wrong OID for nsSchemaPolicy objectclass

Fix Description:
	Replace 2.16.840.1.113730.3.2.115 with 2.16.840.1.113730.3.2.328

https://fedorahosted.org/389/ticket/47676

Reviewed by:  Rich Meggison (thanks again Rich)

Platforms tested: F17

Flag Day: no

Doc impact: no