r8759: Another couple of fields in usermod routine.
authorRafal Szczesniak <mimir@samba.org>
Mon, 25 Jul 2005 22:00:56 +0000 (22:00 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:30:03 +0000 (13:30 -0500)
rafal

source/libnet/composite.h
source/libnet/userman.c
source/torture/libnet/userman.c

index 70e70d04eeb22ce15f6b8517836e3cf536cad95e..6fc0886cb3f67503371be946e53a9c61b45c9366 100644 (file)
@@ -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;
 };
index 37b3d1e7233f6ea055e6180cf024b4d210d6233d..c3d1435dfe398edbb6d3df32746a7853cae87d63 100644 (file)
@@ -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;
                }
        }
 
index ed07cf019aa60988d09a2cd4d8ece5b098fc72dd..1da57e2b3521e3b0747f46a4e3c661c695ba04c5 100644 (file)
@@ -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");