mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05:00
Use current schema objectClass 'groupOfNames' instead of 'groupOfUniqueNames'
Will consider moving to groupOfUniqueNames as part of OpenLDAP 2.0.
This commit is contained in:
parent
b978170b1a
commit
d4c5308b3a
2 changed files with 18 additions and 17 deletions
|
|
@ -366,7 +366,7 @@ acl_access_allowed(
|
|||
|
||||
/* b->a_group is an unexpanded entry name, expanded it should be an
|
||||
* entry with objectclass group* and we test to see if odn is one of
|
||||
* the values in the attribute uniquegroup
|
||||
* the values in the attribute group
|
||||
*/
|
||||
Debug( LDAP_DEBUG_ARGS, "<= check a_group: %s\n",
|
||||
b->a_group, 0, 0);
|
||||
|
|
|
|||
|
|
@ -12,9 +12,9 @@ extern Attribute *attr_find();
|
|||
|
||||
|
||||
#ifdef ACLGROUP
|
||||
/* return 0 IFF edn is a value in uniqueMember attribute
|
||||
/* return 0 IFF edn is a value in member attribute
|
||||
* of entry with bdn AND that entry has an objectClass
|
||||
* value of groupOfUniqueNames
|
||||
* value of groupOfNames
|
||||
*/
|
||||
int
|
||||
ldbm_back_group(
|
||||
|
|
@ -27,7 +27,7 @@ ldbm_back_group(
|
|||
Entry *e;
|
||||
char *matched;
|
||||
Attribute *objectClass;
|
||||
Attribute *uniqueMember;
|
||||
Attribute *member;
|
||||
int rc;
|
||||
|
||||
Debug( LDAP_DEBUG_TRACE, "=> ldbm_back_group: bdn: %s\n", bdn, 0, 0 );
|
||||
|
|
@ -44,39 +44,40 @@ ldbm_back_group(
|
|||
|
||||
/* check for deleted */
|
||||
|
||||
/* find it's objectClass and uniqueMember attribute values
|
||||
/* find it's objectClass and member attribute values
|
||||
* make sure this is a group entry
|
||||
* finally test if we can find edn in the uniqueMember attribute value list *
|
||||
* finally test if we can find edn in the member attribute value list *
|
||||
*/
|
||||
|
||||
rc = 1;
|
||||
if ((objectClass = attr_find(e->e_attrs, "objectclass")) == NULL) {
|
||||
Debug( LDAP_DEBUG_TRACE, "<= ldbm_back_group: failed to find objectClass\n", 0, 0, 0 );
|
||||
}
|
||||
else if ((uniqueMember = attr_find(e->e_attrs, "uniquemember")) == NULL) {
|
||||
Debug( LDAP_DEBUG_TRACE, "<= ldbm_back_group: failed to find uniqueMember\n", 0, 0, 0 );
|
||||
else if ((member = attr_find(e->e_attrs, "member")) == NULL) {
|
||||
Debug( LDAP_DEBUG_TRACE, "<= ldbm_back_group: failed to find member\n", 0, 0, 0 );
|
||||
}
|
||||
else {
|
||||
struct berval bvObjectClass;
|
||||
struct berval bvUniqueMembers;
|
||||
struct berval bvMembers;
|
||||
|
||||
Debug( LDAP_DEBUG_ARGS, "<= ldbm_back_group: found objectClass and uniqueMembers\n", 0, 0, 0 );
|
||||
Debug( LDAP_DEBUG_ARGS, "<= ldbm_back_group: found objectClass and members\n", 0, 0, 0 );
|
||||
|
||||
bvObjectClass.bv_val = "groupofuniquenames";
|
||||
bvObjectClass.bv_val = "groupofnames";
|
||||
bvObjectClass.bv_len = strlen( bvObjectClass.bv_val );
|
||||
bvUniqueMembers.bv_val = edn;
|
||||
bvUniqueMembers.bv_len = strlen( edn );
|
||||
bvMembers.bv_val = edn;
|
||||
bvMembers.bv_len = strlen( edn );
|
||||
|
||||
if (value_find(objectClass->a_vals, &bvObjectClass, SYNTAX_CIS, 1) != 0) {
|
||||
Debug( LDAP_DEBUG_TRACE, "<= ldbm_back_group: failed to find objectClass in groupOfUniqueNames\n",
|
||||
Debug( LDAP_DEBUG_TRACE,
|
||||
"<= ldbm_back_group: failed to find objectClass in groupOfNames\n",
|
||||
0, 0, 0 );
|
||||
}
|
||||
else if (value_find(uniqueMember->a_vals, &bvUniqueMembers, SYNTAX_CIS, 1) != 0) {
|
||||
Debug( LDAP_DEBUG_ACL, "<= ldbm_back_group: %s not in %s: groupOfUniqueNames\n",
|
||||
else if (value_find(Member->a_vals, &bvMembers, SYNTAX_CIS, 1) != 0) {
|
||||
Debug( LDAP_DEBUG_ACL, "<= ldbm_back_group: %s not in %s: groupOfNames\n",
|
||||
edn, bdn, 0 );
|
||||
}
|
||||
else {
|
||||
Debug( LDAP_DEBUG_ACL, "<= ldbm_back_group: %s is in %s: groupOfUniqueNames\n",
|
||||
Debug( LDAP_DEBUG_ACL, "<= ldbm_back_group: %s is in %s: groupOfNames\n",
|
||||
edn, bdn, 0 );
|
||||
rc = 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue