Author: ekohl
Date: Wed May 14 12:02:17 2008
New Revision: 33516
URL:
http://svn.reactos.org/svn/reactos?rev=33516&view=rev
Log:
- Check that the user name does not contain any illegal characters.
- Check that both passwords are the same.
- Limit the maximum user name length to 20 characters.
Modified:
trunk/reactos/dll/cpl/usrmgr/users.c
Modified: trunk/reactos/dll/cpl/usrmgr/users.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/usrmgr/users.c?rev…
==============================================================================
--- trunk/reactos/dll/cpl/usrmgr/users.c [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/usrmgr/users.c [iso-8859-1] Wed May 14 12:02:17 2008
@@ -10,8 +10,6 @@
/*
* TODO:
* - Add new user to the users group.
- * - Check a new users name for illegal characters.
- * - Check whether both passwords are the same for a new user.
* - Remove a user from all groups.
* - Implement user property pages.
* - Use localized messages.
@@ -56,6 +54,31 @@
return TRUE;
}
+
+
+static BOOL
+CheckUserName(HWND hwndDlg,
+ INT nIdDlgItem)
+{
+ TCHAR szUserName[256];
+ UINT uLen;
+
+ uLen = GetDlgItemText(hwndDlg, nIdDlgItem, szUserName, 256);
+
+ /* Check the user name */
+ if (uLen > 0 && _tcspbrk(szUserName,
TEXT("\"*+,/\\:;<=>?[]|")) != NULL)
+ {
+ MessageBox(hwndDlg,
+ TEXT("The user name you entered is invalid! A user name must not
contain the following charecters: *+,/:;<=>?[\\]|"),
+ TEXT("ERROR"),
+ MB_OK | MB_ICONERROR);
+ return FALSE;
+ }
+
+
+ return TRUE;
+}
+
INT_PTR CALLBACK
@@ -108,6 +131,7 @@
{
case WM_INITDIALOG:
SetWindowLongPtr(hwndDlg, DWLP_USER, lParam);
+ SendDlgItemMessage(hwndDlg, IDC_USER_NEW_NAME, EM_SETLIMITTEXT, 20, 0);
CheckDlgButton(hwndDlg, IDC_USER_NEW_FORCE_CHANGE, BST_CHECKED);
break;
@@ -123,6 +147,20 @@
break;
case IDOK:
+ if (!CheckUserName(hwndDlg, IDC_USER_NEW_NAME))
+ {
+ SetFocus(GetDlgItem(hwndDlg, IDC_USER_NEW_NAME));
+ SendDlgItemMessage(hwndDlg, IDC_USER_NEW_NAME, EM_SETSEL, 0,
-1);
+ break;
+ }
+
+ if (!CheckPasswords(hwndDlg, IDC_USER_NEW_PASSWORD1,
IDC_USER_NEW_PASSWORD2))
+ {
+ SetDlgItemText(hwndDlg, IDC_USER_NEW_PASSWORD1,
TEXT(""));
+ SetDlgItemText(hwndDlg, IDC_USER_NEW_PASSWORD2,
TEXT(""));
+ break;
+ }
+
userInfo = (LPUSER_INFO_3)GetWindowLongPtr(hwndDlg, DWLP_USER);
nLength = SendDlgItemMessage(hwndDlg, IDC_USER_NEW_NAME,
WM_GETTEXTLENGTH, 0, 0);