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