svn commit: samba r16622 - in branches/SOC/sree: .

sree at samba.org sree at samba.org
Wed Jun 28 16:35:24 GMT 2006


Author: sree
Date: 2006-06-28 16:35:23 +0000 (Wed, 28 Jun 2006)
New Revision: 16622

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=16622

Log:
modified user_add() to support 'user must change password on next logon'
Modified:
   branches/SOC/sree/test.js
   branches/SOC/sree/usermgmt.js


Changeset:
Modified: branches/SOC/sree/test.js
===================================================================
--- branches/SOC/sree/test.js	2006-06-28 15:08:54 UTC (rev 16621)
+++ branches/SOC/sree/test.js	2006-06-28 16:35:23 UTC (rev 16622)
@@ -12,12 +12,12 @@
 sam = user_init(system_session, creds);
 
 if(user_add(sam, "sree", "Sreepathi Pai", 
-	    "First Test User", "simple", 0, "sree"))
+	    "First Test User", "simple", 0, OUF_CHANGE_PASSWORD_ON_LOGON, "sree"))
     print("User successfully added!\n");
 else
     print("Failed to add user!\n");
 
-printVars(user_get(sam, "sree", new Array("useraccountcontrol")));
+printVars(user_get(sam, "sree", new Array("useraccountcontrol", "pwdLastSet")));
 
 if(user_rename(sam, "sree", "sreetest"))
     print("User successfully renamed!\n");

Modified: branches/SOC/sree/usermgmt.js
===================================================================
--- branches/SOC/sree/usermgmt.js	2006-06-28 15:08:54 UTC (rev 16621)
+++ branches/SOC/sree/usermgmt.js	2006-06-28 16:35:23 UTC (rev 16622)
@@ -13,6 +13,9 @@
 UF_PASSWORD_CANT_CHANGE = 0x40;
 UF_DONT_EXPIRE_PASSWORD = 0x10000;
 
+// other user flags, non-standard
+OUF_CHANGE_PASSWORD_ON_LOGON = 1;
+
 // initialize user functions, and return opaque value to be used by
 // other functions
 function user_init(session_info, credentials)
@@ -101,7 +104,7 @@
 }
 
 // add a user
-function user_add(sam, username, fullname, description, password, flags, unixname)
+function user_add(sam, username, fullname, description, password, flags, otherflags, unixname)
 {
     var sys = sys_init();
 
@@ -170,15 +173,18 @@
     if(sys.bitAND(flags, UF_PASSWORD_CANT_CHANGE))
 	userAccountControl = sys.bitOR(userAccountControl, UF_PASSWORD_CANT_CHANGE);
 
-    //TODO: User must change password at next logon
-    // Account is locked out
+    //TODO: Account is locked out -- how?
     
     ldifmod = sprintf("
 dn: %s
 changetype: modify
 replace: userAccountControl
-userAccountControl: %u", user_dn, userAccountControl);
+userAccountControl: %u
+", user_dn, userAccountControl);
 
+    if(sys.bitAND(otherflags, OUF_CHANGE_PASSWORD_ON_LOGON))
+	ldifmod = ldifmod + "-\nreplace: pwdLastSet\npwdLastSet: 0\n";
+
     if(sam.ldb.modify(ldifmod) != true)
 	{
 	    print("Failed to modify user flags!\n");



More information about the samba-cvs mailing list