mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +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
|
||||
NewUserDlgProc(HWND hwndDlg,
|
||||
UINT uMsg,
|
||||
|
@ -127,12 +157,15 @@ NewUserDlgProc(HWND hwndDlg,
|
|||
|
||||
UNREFERENCED_PARAMETER(wParam);
|
||||
|
||||
userInfo = (PUSER_INFO_3)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||
|
||||
switch (uMsg)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
userInfo = (PUSER_INFO_3)lParam;
|
||||
SetWindowLongPtr(hwndDlg, DWLP_USER, lParam);
|
||||
SendDlgItemMessage(hwndDlg, IDC_USER_NEW_NAME, EM_SETLIMITTEXT, 20, 0);
|
||||
CheckDlgButton(hwndDlg, IDC_USER_NEW_FORCE_CHANGE, BST_CHECKED);
|
||||
UpdateUserOptions(hwndDlg, userInfo, TRUE);
|
||||
break;
|
||||
|
||||
case WM_COMMAND:
|
||||
|
@ -146,6 +179,25 @@ NewUserDlgProc(HWND hwndDlg,
|
|||
}
|
||||
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:
|
||||
if (!CheckUserName(hwndDlg, IDC_USER_NEW_NAME))
|
||||
{
|
||||
|
@ -161,8 +213,7 @@ NewUserDlgProc(HWND hwndDlg,
|
|||
break;
|
||||
}
|
||||
|
||||
userInfo = (LPUSER_INFO_3)GetWindowLongPtr(hwndDlg, DWLP_USER);
|
||||
|
||||
/* Store the user name */
|
||||
nLength = SendDlgItemMessage(hwndDlg, IDC_USER_NEW_NAME, WM_GETTEXTLENGTH, 0, 0);
|
||||
if (nLength > 0)
|
||||
{
|
||||
|
@ -170,6 +221,7 @@ NewUserDlgProc(HWND hwndDlg,
|
|||
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);
|
||||
if (nLength > 0)
|
||||
{
|
||||
|
@ -177,6 +229,7 @@ NewUserDlgProc(HWND hwndDlg,
|
|||
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);
|
||||
if (nLength > 0)
|
||||
{
|
||||
|
@ -192,12 +245,6 @@ NewUserDlgProc(HWND hwndDlg,
|
|||
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);
|
||||
break;
|
||||
|
||||
|
@ -232,6 +279,8 @@ UserNew(HWND hwndDlg)
|
|||
user.usri3_max_storage = USER_MAXSTORAGE_UNLIMITED;
|
||||
user.usri3_primary_group_id = DOMAIN_GROUP_RID_USERS;
|
||||
|
||||
user.usri3_password_expired = TRUE;
|
||||
|
||||
if (DialogBoxParam(hApplet,
|
||||
MAKEINTRESOURCE(IDD_USER_NEW),
|
||||
hwndDlg,
|
||||
|
|
Loading…
Reference in a new issue