2005-02-13 03:48:21 +03:00
/*
Unix SMB / CIFS implementation .
Copyright ( C ) Rafal Szczesniak < mimir @ samba . org > 2005
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 2 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; if not , write to the Free Software
Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
2005-06-08 03:21:38 +04:00
struct libnet_CreateUser {
2005-02-13 03:48:21 +03:00
struct {
2005-06-08 03:21:38 +04:00
const char * user_name ;
const char * domain_name ;
} in ;
struct {
const char * error_string ;
} out ;
2005-02-13 03:48:21 +03:00
} ;
2006-01-13 06:39:49 +03:00
struct libnet_DeleteUser {
struct {
const char * user_name ;
const char * domain_name ;
} in ;
struct {
const char * error_string ;
} out ;
} ;
2006-05-28 14:45:22 +04:00
struct libnet_ModifyUser {
struct {
const char * user_name ;
const char * domain_name ;
2006-06-27 01:19:41 +04:00
const char * account_name ;
2006-05-28 14:45:22 +04:00
const char * full_name ;
const char * description ;
2006-08-08 00:29:18 +04:00
const char * home_directory ;
const char * home_drive ;
2006-05-28 14:45:22 +04:00
const char * comment ;
const char * logon_script ;
const char * profile_path ;
struct timeval * acct_expiry ;
struct timeval * allow_password_change ;
struct timeval * force_password_change ;
2006-08-08 00:29:18 +04:00
struct timeval * last_logon ;
struct timeval * last_logoff ;
struct timeval * last_password_change ;
2006-05-28 14:45:22 +04:00
uint32_t acct_flags ;
} in ;
struct {
const char * error_string ;
} out ;
} ;
2006-08-08 00:29:18 +04:00
# define SET_FIELD_LSA_STRING(new, current, mod, field, flag) \
if ( new . field ! = NULL & & \
! strequal_w ( current - > field . string , new . field ) ) { \
\
mod - > field = talloc_strdup ( mem_ctx , new . field ) ; \
if ( mod - > field = = NULL ) return NT_STATUS_NO_MEMORY ; \
\
mod - > fields | = flag ; \
}
# define SET_FIELD_NTTIME(new, current, mod, field, flag) \
if ( new . field ! = 0 ) { \
NTTIME newval = timeval_to_nttime ( new . field ) ; \
if ( newval ! = current - > field ) { \
2006-08-08 00:43:06 +04:00
mod - > field = talloc_memdup ( mem_ctx , new . field , sizeof ( * new . field ) ) ; \
if ( mod - > field = = NULL ) return NT_STATUS_NO_MEMORY ; \
2006-08-08 00:29:18 +04:00
mod - > fields | = flag ; \
} \
}