summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafal Szczesniak <mimir@samba.org>2005-07-25 22:00:56 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:30:03 -0500
commit2440a008a82f73c8310cde18cbfb53e39c99d362 (patch)
tree67081090215dfde52eb39861dec20d223a873c58
parent3e418f77e396979dfecbfdf6969391c44b437faa (diff)
downloadsamba-2440a008a82f73c8310cde18cbfb53e39c99d362.tar.gz
samba-2440a008a82f73c8310cde18cbfb53e39c99d362.tar.bz2
samba-2440a008a82f73c8310cde18cbfb53e39c99d362.zip
r8759: Another couple of fields in usermod routine.
rafal (This used to be commit 266aaacf0be955096d53e2a967bdaa5d0c5558ed)
-rw-r--r--source4/libnet/composite.h6
-rw-r--r--source4/libnet/userman.c24
-rw-r--r--source4/torture/libnet/userman.c7
3 files changed, 35 insertions, 2 deletions
diff --git a/source4/libnet/composite.h b/source4/libnet/composite.h
index 70e70d04ee..6fc0886cb3 100644
--- a/source4/libnet/composite.h
+++ b/source4/libnet/composite.h
@@ -61,6 +61,9 @@ struct libnet_rpc_userdel {
#define USERMOD_FIELD_ACCOUNT_NAME ( 0x00000001 )
#define USERMOD_FIELD_FULL_NAME ( 0x00000002 )
+#define USERMOD_FIELD_DESCRIPTION ( 0x00000010 )
+#define USERMOD_FIELD_LOGON_SCRIPT ( 0x00000100 )
+#define USERMOD_FIELD_PROFILE_PATH ( 0x00000200 )
struct libnet_rpc_usermod {
struct {
@@ -72,6 +75,9 @@ struct libnet_rpc_usermod {
const char *account_name;
const char *full_name;
+ const char *description;
+ const char *logon_script;
+ const char *profile_path;
} change;
} in;
};
diff --git a/source4/libnet/userman.c b/source4/libnet/userman.c
index 37b3d1e723..c3d1435dfe 100644
--- a/source4/libnet/userman.c
+++ b/source4/libnet/userman.c
@@ -496,6 +496,30 @@ static NTSTATUS usermod_open(struct composite_context *c,
i->info8.full_name.string = s->change.full_name;
s->change.fields ^= USERMOD_FIELD_FULL_NAME;
+
+ } else if (s->change.fields & USERMOD_FIELD_DESCRIPTION) {
+ level = 13;
+ i->info13.description.length = 2*strlen_m(s->change.description);
+ i->info13.description.size = 2*strlen_m(s->change.description);
+ i->info13.description.string = s->change.description;
+
+ s->change.fields ^= USERMOD_FIELD_DESCRIPTION;
+
+ } else if (s->change.fields & USERMOD_FIELD_LOGON_SCRIPT) {
+ level = 11;
+ i->info11.logon_script.length = 2*strlen_m(s->change.logon_script);
+ i->info11.logon_script.size = 2*strlen_m(s->change.logon_script);
+ i->info11.logon_script.string = s->change.logon_script;
+
+ s->change.fields ^= USERMOD_FIELD_LOGON_SCRIPT;
+
+ } else if (s->change.fields & USERMOD_FIELD_PROFILE_PATH) {
+ level = 12;
+ i->info12.profile_path.length = 2*strlen_m(s->change.profile_path);
+ i->info12.profile_path.size = 2*strlen_m(s->change.profile_path);
+ i->info12.profile_path.string = s->change.profile_path;
+
+ s->change.fields ^= USERMOD_FIELD_PROFILE_PATH;
}
}
diff --git a/source4/torture/libnet/userman.c b/source4/torture/libnet/userman.c
index ed07cf019a..1da57e2b35 100644
--- a/source4/torture/libnet/userman.c
+++ b/source4/torture/libnet/userman.c
@@ -414,8 +414,11 @@ BOOL torture_usermod(void)
int i;
struct usermod_change changes[] = {
- { USERMOD_FIELD_ACCOUNT_NAME, "changed", NULL },
- { USERMOD_FIELD_FULL_NAME, NULL, "Testing full account name" }
+ { USERMOD_FIELD_ACCOUNT_NAME, "changed", NULL, NULL, NULL, NULL },
+ { USERMOD_FIELD_FULL_NAME, NULL, "Testing full account name", NULL, NULL, NULL },
+ { USERMOD_FIELD_DESCRIPTION, NULL, NULL, "Description of tested account", NULL, NULL },
+ { USERMOD_FIELD_LOGON_SCRIPT, NULL, NULL, NULL, "test_logon.cmd", NULL },
+ { USERMOD_FIELD_PROFILE_PATH, NULL, NULL, NULL, NULL, "\\\\TESTSRV\\profiles\\test" }
};
mem_ctx = talloc_init("test_userdel");