diff options
Diffstat (limited to 'lib/kadm5/modify_s.c')
| -rw-r--r-- | lib/kadm5/modify_s.c | 70 | 
1 files changed, 35 insertions, 35 deletions
| diff --git a/lib/kadm5/modify_s.c b/lib/kadm5/modify_s.c index 449f6195cca8..7907995ec3b8 100644 --- a/lib/kadm5/modify_s.c +++ b/lib/kadm5/modify_s.c @@ -1,43 +1,43 @@  /* - * Copyright (c) 1997-2001, 2003, 2005-2006 Kungliga Tekniska Högskolan - * (Royal Institute of Technology, Stockholm, Sweden).  - * All rights reserved.  + * Copyright (c) 1997-2001, 2003, 2005-2006 Kungliga Tekniska Högskolan + * (Royal Institute of Technology, Stockholm, Sweden). + * All rights reserved.   * - * Redistribution and use in source and binary forms, with or without  - * modification, are permitted provided that the following conditions  - * are met:  + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met:   * - * 1. Redistributions of source code must retain the above copyright  - *    notice, this list of conditions and the following disclaimer.  + * 1. Redistributions of source code must retain the above copyright + *    notice, this list of conditions and the following disclaimer.   * - * 2. Redistributions in binary form must reproduce the above copyright  - *    notice, this list of conditions and the following disclaimer in the  - *    documentation and/or other materials provided with the distribution.  + * 2. Redistributions in binary form must reproduce the above copyright + *    notice, this list of conditions and the following disclaimer in the + *    documentation and/or other materials provided with the distribution.   * - * 3. Neither the name of the Institute nor the names of its contributors  - *    may be used to endorse or promote products derived from this software  - *    without specific prior written permission.  + * 3. Neither the name of the Institute nor the names of its contributors + *    may be used to endorse or promote products derived from this software + *    without specific prior written permission.   * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND  - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  - * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE  - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL  - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS  - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT  - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY  - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF  - * SUCH DAMAGE.  + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE.   */  #include "kadm5_locl.h" -RCSID("$Id: modify_s.c 20610 2007-05-08 07:12:37Z lha $"); +RCSID("$Id$");  static kadm5_ret_t  modify_principal(void *server_handle, -		 kadm5_principal_ent_t princ,  +		 kadm5_principal_ent_t princ,  		 uint32_t mask,  		 uint32_t forbidden_mask)  { @@ -48,13 +48,13 @@ modify_principal(void *server_handle,  	return KADM5_BAD_MASK;      if((mask & KADM5_POLICY) && strcmp(princ->policy, "default"))  	return KADM5_UNK_POLICY; -     +      memset(&ent, 0, sizeof(ent));      ret = context->db->hdb_open(context->context, context->db, O_RDWR, 0);      if(ret)  	return ret; -    ret = context->db->hdb_fetch(context->context, context->db,  -				 princ->principal, HDB_F_GET_ANY, &ent); +    ret = context->db->hdb_fetch_kvno(context->context, context->db, +				      princ->principal, HDB_F_GET_ANY|HDB_F_ADMIN_DATA, 0, &ent);      if(ret)  	goto out;      ret = _kadm5_setup_entry(context, &ent, mask, princ, mask, NULL, 0); @@ -68,7 +68,7 @@ modify_principal(void *server_handle,      if (ret)  	goto out2; -    ret = context->db->hdb_store(context->context, context->db,  +    ret = context->db->hdb_store(context->context, context->db,  			     HDB_F_REPLACE, &ent);      if (ret)  	goto out2; @@ -87,12 +87,12 @@ out:  kadm5_ret_t  kadm5_s_modify_principal(void *server_handle, -			 kadm5_principal_ent_t princ,  +			 kadm5_principal_ent_t princ,  			 uint32_t mask)  { -    return modify_principal(server_handle, princ, mask,  -			    KADM5_LAST_PWD_CHANGE | KADM5_MOD_TIME  -			    | KADM5_MOD_NAME | KADM5_MKVNO  +    return modify_principal(server_handle, princ, mask, +			    KADM5_LAST_PWD_CHANGE | KADM5_MOD_TIME +			    | KADM5_MOD_NAME | KADM5_MKVNO  			    | KADM5_AUX_ATTRIBUTES | KADM5_LAST_SUCCESS  			    | KADM5_LAST_FAILED);  } | 
