mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 21:25:43 +00:00
New user dialog: Implement user options properly.
svn path=/trunk/; revision=33554
This commit is contained in:
parent
4f5b849245
commit
9e6e290b4f
1 changed files with 58 additions and 9 deletions
|
@ -116,6 +116,36 @@ ChangePasswordDlgProc(HWND hwndDlg,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static VOID
|
||||||
|
UpdateUserOptions(HWND hwndDlg,
|
||||||
|
PUSER_INFO_3 userInfo,
|
||||||
|
BOOL bInit)
|
||||||
|
{
|
||||||
|
EnableWindow(GetDlgItem(hwndDlg, IDC_USER_NEW_CANNOT_CHANGE),
|
||||||
|
!userInfo->usri3_password_expired);
|
||||||
|
EnableWindow(GetDlgItem(hwndDlg, IDC_USER_NEW_NEVER_EXPIRES),
|
||||||
|
!userInfo->usri3_password_expired);
|
||||||
|
|
||||||
|
EnableWindow(GetDlgItem(hwndDlg, IDC_USER_NEW_FORCE_CHANGE),
|
||||||
|
(userInfo->usri3_flags & (UF_PASSWD_CANT_CHANGE | UF_DONT_EXPIRE_PASSWD)) == 0);
|
||||||
|
|
||||||
|
if (bInit)
|
||||||
|
{
|
||||||
|
CheckDlgButton(hwndDlg, IDC_USER_NEW_FORCE_CHANGE,
|
||||||
|
userInfo->usri3_password_expired ? BST_CHECKED : BST_UNCHECKED);
|
||||||
|
|
||||||
|
CheckDlgButton(hwndDlg, IDC_USER_NEW_CANNOT_CHANGE,
|
||||||
|
(userInfo->usri3_flags & UF_PASSWD_CANT_CHANGE) ? BST_CHECKED : BST_UNCHECKED);
|
||||||
|
|
||||||
|
CheckDlgButton(hwndDlg, IDC_USER_NEW_NEVER_EXPIRES,
|
||||||
|
(userInfo->usri3_flags & UF_DONT_EXPIRE_PASSWD) ? BST_CHECKED : BST_UNCHECKED);
|
||||||
|
|
||||||
|
CheckDlgButton(hwndDlg, IDC_USER_NEW_DISABLED,
|
||||||
|
(userInfo->usri3_flags & UF_ACCOUNTDISABLE) ? BST_CHECKED : BST_UNCHECKED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
INT_PTR CALLBACK
|
INT_PTR CALLBACK
|
||||||
NewUserDlgProc(HWND hwndDlg,
|
NewUserDlgProc(HWND hwndDlg,
|
||||||
UINT uMsg,
|
UINT uMsg,
|
||||||
|
@ -127,12 +157,15 @@ NewUserDlgProc(HWND hwndDlg,
|
||||||
|
|
||||||
UNREFERENCED_PARAMETER(wParam);
|
UNREFERENCED_PARAMETER(wParam);
|
||||||
|
|
||||||
|
userInfo = (PUSER_INFO_3)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||||
|
|
||||||
switch (uMsg)
|
switch (uMsg)
|
||||||
{
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
|
userInfo = (PUSER_INFO_3)lParam;
|
||||||
SetWindowLongPtr(hwndDlg, DWLP_USER, lParam);
|
SetWindowLongPtr(hwndDlg, DWLP_USER, lParam);
|
||||||
SendDlgItemMessage(hwndDlg, IDC_USER_NEW_NAME, EM_SETLIMITTEXT, 20, 0);
|
SendDlgItemMessage(hwndDlg, IDC_USER_NEW_NAME, EM_SETLIMITTEXT, 20, 0);
|
||||||
CheckDlgButton(hwndDlg, IDC_USER_NEW_FORCE_CHANGE, BST_CHECKED);
|
UpdateUserOptions(hwndDlg, userInfo, TRUE);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
|
@ -146,6 +179,25 @@ NewUserDlgProc(HWND hwndDlg,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case IDC_USER_NEW_FORCE_CHANGE:
|
||||||
|
userInfo->usri3_password_expired = !userInfo->usri3_password_expired;
|
||||||
|
UpdateUserOptions(hwndDlg, userInfo, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_USER_NEW_CANNOT_CHANGE:
|
||||||
|
userInfo->usri3_flags ^= UF_PASSWD_CANT_CHANGE;
|
||||||
|
UpdateUserOptions(hwndDlg, userInfo, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_USER_NEW_NEVER_EXPIRES:
|
||||||
|
userInfo->usri3_flags ^= UF_DONT_EXPIRE_PASSWD;
|
||||||
|
UpdateUserOptions(hwndDlg, userInfo, FALSE);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case IDC_USER_NEW_DISABLED:
|
||||||
|
userInfo->usri3_flags ^= UF_ACCOUNTDISABLE;
|
||||||
|
break;
|
||||||
|
|
||||||
case IDOK:
|
case IDOK:
|
||||||
if (!CheckUserName(hwndDlg, IDC_USER_NEW_NAME))
|
if (!CheckUserName(hwndDlg, IDC_USER_NEW_NAME))
|
||||||
{
|
{
|
||||||
|
@ -161,8 +213,7 @@ NewUserDlgProc(HWND hwndDlg,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
userInfo = (LPUSER_INFO_3)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
/* Store the user name */
|
||||||
|
|
||||||
nLength = SendDlgItemMessage(hwndDlg, IDC_USER_NEW_NAME, WM_GETTEXTLENGTH, 0, 0);
|
nLength = SendDlgItemMessage(hwndDlg, IDC_USER_NEW_NAME, WM_GETTEXTLENGTH, 0, 0);
|
||||||
if (nLength > 0)
|
if (nLength > 0)
|
||||||
{
|
{
|
||||||
|
@ -170,6 +221,7 @@ NewUserDlgProc(HWND hwndDlg,
|
||||||
GetDlgItemText(hwndDlg, IDC_USER_NEW_NAME, userInfo->usri3_name, nLength + 1);
|
GetDlgItemText(hwndDlg, IDC_USER_NEW_NAME, userInfo->usri3_name, nLength + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Store the full user name */
|
||||||
nLength = SendDlgItemMessage(hwndDlg, IDC_USER_NEW_FULL_NAME, WM_GETTEXTLENGTH, 0, 0);
|
nLength = SendDlgItemMessage(hwndDlg, IDC_USER_NEW_FULL_NAME, WM_GETTEXTLENGTH, 0, 0);
|
||||||
if (nLength > 0)
|
if (nLength > 0)
|
||||||
{
|
{
|
||||||
|
@ -177,6 +229,7 @@ NewUserDlgProc(HWND hwndDlg,
|
||||||
GetDlgItemText(hwndDlg, IDC_USER_NEW_FULL_NAME, userInfo->usri3_full_name, nLength + 1);
|
GetDlgItemText(hwndDlg, IDC_USER_NEW_FULL_NAME, userInfo->usri3_full_name, nLength + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Store the description */
|
||||||
nLength = SendDlgItemMessage(hwndDlg, IDC_USER_NEW_DESCRIPTION, WM_GETTEXTLENGTH, 0, 0);
|
nLength = SendDlgItemMessage(hwndDlg, IDC_USER_NEW_DESCRIPTION, WM_GETTEXTLENGTH, 0, 0);
|
||||||
if (nLength > 0)
|
if (nLength > 0)
|
||||||
{
|
{
|
||||||
|
@ -192,12 +245,6 @@ NewUserDlgProc(HWND hwndDlg,
|
||||||
GetDlgItemText(hwndDlg, IDC_USER_NEW_PASSWORD1, userInfo->usri3_password, nLength + 1);
|
GetDlgItemText(hwndDlg, IDC_USER_NEW_PASSWORD1, userInfo->usri3_password, nLength + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsDlgButtonChecked(hwndDlg, IDC_USER_NEW_FORCE_CHANGE) == BST_CHECKED)
|
|
||||||
userInfo->usri3_password_expired = TRUE;
|
|
||||||
|
|
||||||
if (IsDlgButtonChecked(hwndDlg, IDC_USER_NEW_DISABLED) == BST_CHECKED)
|
|
||||||
userInfo->usri3_flags |= UF_ACCOUNTDISABLE;
|
|
||||||
|
|
||||||
EndDialog(hwndDlg, IDOK);
|
EndDialog(hwndDlg, IDOK);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -232,6 +279,8 @@ UserNew(HWND hwndDlg)
|
||||||
user.usri3_max_storage = USER_MAXSTORAGE_UNLIMITED;
|
user.usri3_max_storage = USER_MAXSTORAGE_UNLIMITED;
|
||||||
user.usri3_primary_group_id = DOMAIN_GROUP_RID_USERS;
|
user.usri3_primary_group_id = DOMAIN_GROUP_RID_USERS;
|
||||||
|
|
||||||
|
user.usri3_password_expired = TRUE;
|
||||||
|
|
||||||
if (DialogBoxParam(hApplet,
|
if (DialogBoxParam(hApplet,
|
||||||
MAKEINTRESOURCE(IDD_USER_NEW),
|
MAKEINTRESOURCE(IDD_USER_NEW),
|
||||||
hwndDlg,
|
hwndDlg,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue