version 1.1, 2007/09/07 10:04:55
|
version 1.4.2.1, 2009/12/11 23:12:24
|
Line 1
|
Line 1
|
/* modrdn.c - sock backend modrdn function */ |
/* modrdn.c - sock backend modrdn function */ |
/* $OpenLDAP$ */ |
/* $OpenLDAP: pkg/ldap/servers/slapd/back-sock/modrdn.c,v 1.4 2009/01/21 23:40:37 kurt Exp $ */ |
/* This work is part of OpenLDAP Software <http://www.openldap.org/>. |
/* This work is part of OpenLDAP Software <http://www.openldap.org/>. |
* |
* |
* Copyright 2007 The OpenLDAP Foundation. |
* Copyright 2007-2009 The OpenLDAP Foundation. |
* All rights reserved. |
* All rights reserved. |
* |
* |
* Redistribution and use in source and binary forms, with or without |
* Redistribution and use in source and binary forms, with or without |
Line 13
|
Line 13
|
* top-level directory of the distribution or, alternatively, at |
* top-level directory of the distribution or, alternatively, at |
* <http://www.OpenLDAP.org/license.html>. |
* <http://www.OpenLDAP.org/license.html>. |
*/ |
*/ |
|
/* ACKNOWLEDGEMENTS: |
|
* This work was initially developed by Brian Candler for inclusion |
|
* in OpenLDAP Software. |
|
*/ |
|
|
#include "portable.h" |
#include "portable.h" |
|
|
Line 30 sock_back_modrdn(
|
Line 34 sock_back_modrdn(
|
SlapReply *rs ) |
SlapReply *rs ) |
{ |
{ |
struct sockinfo *si = (struct sockinfo *) op->o_bd->be_private; |
struct sockinfo *si = (struct sockinfo *) op->o_bd->be_private; |
AttributeDescription *entry = slap_schema.si_ad_entry; |
|
Entry e; |
Entry e; |
FILE *fp; |
FILE *fp; |
|
AclCheck ak = { &e, slap_schema.si_ad_entry, NULL, ACL_WRITE, NULL }; |
|
|
e.e_id = NOID; |
e.e_id = NOID; |
e.e_name = op->o_req_dn; |
e.e_name = op->o_req_dn; |
Line 43 sock_back_modrdn(
|
Line 47 sock_back_modrdn(
|
e.e_bv.bv_val = NULL; |
e.e_bv.bv_val = NULL; |
e.e_private = NULL; |
e.e_private = NULL; |
|
|
if ( ! access_allowed( op, &e, entry, NULL, |
if ( op->oq_modrdn.rs_newSup ) ak.ak_access = ACL_WDEL; |
op->oq_modrdn.rs_newSup ? ACL_WDEL : ACL_WRITE, |
if ( ! access_allowed( op, &ak )) |
NULL ) ) |
|
{ |
{ |
send_ldap_error( op, rs, LDAP_INSUFFICIENT_ACCESS, NULL ); |
send_ldap_error( op, rs, LDAP_INSUFFICIENT_ACCESS, NULL ); |
return -1; |
return -1; |