mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
s4:SAMR rpc server - "SetUserInfo" - fix the implementation of the expire flag
It has to consider the "password_expires" flag to known if the "pwdLastSet" has to be updated or to be resetted.
This commit is contained in:
parent
7f15ca4427
commit
b03040c5a9
@ -3281,9 +3281,16 @@ static NTSTATUS dcesrv_samr_SetUserInfo(struct dcesrv_call_state *dce_call, TALL
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
IFSET(SAMR_FIELD_EXPIRED_FLAG) {
|
||||
NTTIME t = 0;
|
||||
struct ldb_message_element *set_el;
|
||||
if (samdb_msg_add_uint64(sam_ctx, mem_ctx, msg, "pwdLastSet", 0) != LDB_SUCCESS) {
|
||||
if (r->in.info->info21.password_expired
|
||||
== PASS_DONT_CHANGE_AT_NEXT_LOGON) {
|
||||
unix_to_nt_time(&t, time(NULL));
|
||||
}
|
||||
if (samdb_msg_add_uint64(sam_ctx, mem_ctx, msg,
|
||||
"pwdLastSet", t) != LDB_SUCCESS) {
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
set_el = ldb_msg_find_element(msg, "pwdLastSet");
|
||||
@ -3363,8 +3370,14 @@ static NTSTATUS dcesrv_samr_SetUserInfo(struct dcesrv_call_state *dce_call, TALL
|
||||
}
|
||||
|
||||
IFSET(SAMR_FIELD_EXPIRED_FLAG) {
|
||||
NTTIME t = 0;
|
||||
struct ldb_message_element *set_el;
|
||||
if (samdb_msg_add_uint64(sam_ctx, mem_ctx, msg, "pwdLastSet", 0) != LDB_SUCCESS) {
|
||||
if (r->in.info->info23.info.password_expired
|
||||
== PASS_DONT_CHANGE_AT_NEXT_LOGON) {
|
||||
unix_to_nt_time(&t, time(NULL));
|
||||
}
|
||||
if (samdb_msg_add_uint64(sam_ctx, mem_ctx, msg,
|
||||
"pwdLastSet", t) != LDB_SUCCESS) {
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
set_el = ldb_msg_find_element(msg, "pwdLastSet");
|
||||
@ -3465,8 +3478,14 @@ static NTSTATUS dcesrv_samr_SetUserInfo(struct dcesrv_call_state *dce_call, TALL
|
||||
}
|
||||
|
||||
IFSET(SAMR_FIELD_EXPIRED_FLAG) {
|
||||
NTTIME t = 0;
|
||||
struct ldb_message_element *set_el;
|
||||
if (samdb_msg_add_uint64(sam_ctx, mem_ctx, msg, "pwdLastSet", 0) != LDB_SUCCESS) {
|
||||
if (r->in.info->info25.info.password_expired
|
||||
== PASS_DONT_CHANGE_AT_NEXT_LOGON) {
|
||||
unix_to_nt_time(&t, time(NULL));
|
||||
}
|
||||
if (samdb_msg_add_uint64(sam_ctx, mem_ctx, msg,
|
||||
"pwdLastSet", t) != LDB_SUCCESS) {
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
set_el = ldb_msg_find_element(msg, "pwdLastSet");
|
||||
|
Loading…
Reference in New Issue
Block a user