Author: ekohl
Date: Sat Nov 8 21:44:32 2014
New Revision: 65332
URL:
http://svn.reactos.org/svn/reactos?rev=65332&view=rev
Log:
[NET]
USER command:
- Replace stings by resource strings.
- Add a function to print padded resource strings.
- Fix the password input routine. Repeat if the passwords don't match.
Modified:
trunk/reactos/base/applications/network/net/cmdUser.c
trunk/reactos/base/applications/network/net/lang/en-US.rc
trunk/reactos/base/applications/network/net/lang/ro-RO.rc
trunk/reactos/base/applications/network/net/lang/ru-RU.rc
trunk/reactos/base/applications/network/net/main.c
trunk/reactos/base/applications/network/net/net.h
trunk/reactos/base/applications/network/net/resource.h
Modified: trunk/reactos/base/applications/network/net/cmdUser.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
==============================================================================
--- trunk/reactos/base/applications/network/net/cmdUser.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/network/net/cmdUser.c [iso-8859-1] Sat Nov 8 21:44:32
2014
@@ -173,13 +173,25 @@
if (Status != NERR_Success)
goto done;
- PrintToConsole(L"User name %s\n",
pUserInfo->usri4_name);
- PrintToConsole(L"Full name %s\n",
pUserInfo->usri4_full_name);
- PrintToConsole(L"Comment %s\n",
pUserInfo->usri4_comment);
- PrintToConsole(L"User comment %s\n",
pUserInfo->usri4_usr_comment);
- PrintToConsole(L"Country code %03ld ()\n",
pUserInfo->usri4_country_code);
- PrintToConsole(L"Account active %s\n",
(pUserInfo->usri4_flags & UF_ACCOUNTDISABLE)? L"No" :
((pUserInfo->usri4_flags & UF_LOCKOUT) ? L"Locked" : L"Yes"));
- PrintToConsole(L"Account expires ");
+ PrintPaddedResourceString(IDS_USER_NAME);
+ PrintToConsole(L"%s\n", pUserInfo->usri4_name);
+
+ PrintPaddedResourceString(IDS_USER_FULL_NAME);
+ PrintToConsole(L"%s\n", pUserInfo->usri4_full_name);
+
+ PrintPaddedResourceString(IDS_USER_COMMENT);
+ PrintToConsole(L"%s\n", pUserInfo->usri4_comment);
+
+ PrintPaddedResourceString(IDS_USER_USER_COMMENT);
+ PrintToConsole(L"%s\n", pUserInfo->usri4_usr_comment);
+
+ PrintPaddedResourceString(IDS_USER_COUNTRY_CODE);
+ PrintToConsole(L"%03ld ()\n", pUserInfo->usri4_country_code);
+
+ PrintPaddedResourceString(IDS_USER_ACCOUNT_ACTIVE);
+ PrintToConsole(L"%s\n", (pUserInfo->usri4_flags &
UF_ACCOUNTDISABLE)? L"No" : ((pUserInfo->usri4_flags & UF_LOCKOUT) ?
L"Locked" : L"Yes"));
+
+ PrintPaddedResourceString(IDS_USER_ACCOUNT_EXPIRES);
if (pUserInfo->usri4_acct_expires == TIMEQ_FOREVER)
PrintToConsole(L"Never\n");
else
@@ -187,40 +199,55 @@
PrintToConsole(L"\n");
- PrintToConsole(L"Password last set ");
+ PrintPaddedResourceString(IDS_USER_PW_LAST_SET);
dwLastSet = GetTimeInSeconds() - pUserInfo->usri4_password_age;
PrintDateTime(dwLastSet);
- PrintToConsole(L"Password expires ");
+ PrintPaddedResourceString(IDS_USER_PW_EXPIRES);
if ((pUserInfo->usri4_flags & UF_DONT_EXPIRE_PASSWD) ||
pUserModals->usrmod0_max_passwd_age == TIMEQ_FOREVER)
PrintToConsole(L"Never\n");
else
PrintDateTime(dwLastSet + pUserModals->usrmod0_max_passwd_age);
- PrintToConsole(L"Password changeable ");
+ PrintPaddedResourceString(IDS_USER_PW_CHANGEABLE);
PrintDateTime(dwLastSet + pUserModals->usrmod0_min_passwd_age);
- PrintToConsole(L"Password required %s\n",
(pUserInfo->usri4_flags & UF_PASSWD_NOTREQD) ? L"No" :
L"Yes");
- PrintToConsole(L"User may change password %s\n",
(pUserInfo->usri4_flags & UF_PASSWD_CANT_CHANGE) ? L"No" :
L"Yes");
+ PrintPaddedResourceString(IDS_USER_PW_REQUIRED);
+ PrintToConsole(L"%s\n", (pUserInfo->usri4_flags & UF_PASSWD_NOTREQD)
? L"No" : L"Yes");
+
+ PrintPaddedResourceString(IDS_USER_CHANGE_PW);
+ PrintToConsole(L"%s\n", (pUserInfo->usri4_flags &
UF_PASSWD_CANT_CHANGE) ? L"No" : L"Yes");
PrintToConsole(L"\n");
- PrintToConsole(L"Workstations allowed %s\n",
(pUserInfo->usri4_workstations == NULL || wcslen(pUserInfo->usri4_workstations) ==
0) ? L"All" : pUserInfo->usri4_workstations);
- PrintToConsole(L"Logon script %s\n",
pUserInfo->usri4_script_path);
- PrintToConsole(L"User profile %s\n",
pUserInfo->usri4_profile);
- PrintToConsole(L"Home directory %s\n",
pUserInfo->usri4_home_dir);
- PrintToConsole(L"Last logon ");
+
+ PrintPaddedResourceString(IDS_USER_WORKSTATIONS);
+ PrintToConsole(L"%s\n", (pUserInfo->usri4_workstations == NULL ||
wcslen(pUserInfo->usri4_workstations) == 0) ? L"All" :
pUserInfo->usri4_workstations);
+
+ PrintPaddedResourceString(IDS_USER_LOGON_SCRIPT);
+ PrintToConsole(L"%s\n", pUserInfo->usri4_script_path);
+
+ PrintPaddedResourceString(IDS_USER_PROFILE);
+ PrintToConsole(L"%s\n", pUserInfo->usri4_profile);
+
+ PrintPaddedResourceString(IDS_USER_HOME_DIR);
+ PrintToConsole(L"%s\n", pUserInfo->usri4_home_dir);
+
+ PrintPaddedResourceString(IDS_USER_LAST_LOGON);
if (pUserInfo->usri4_last_logon == 0)
PrintToConsole(L"Never\n");
else
PrintDateTime(pUserInfo->usri4_last_logon);
+
PrintToConsole(L"\n");
- PrintToConsole(L"Logon hours allowed ");
+
+ PrintPaddedResourceString(IDS_USER_LOGON_HOURS);
if (pUserInfo->usri4_logon_hours == NULL)
PrintToConsole(L"All\n");
+
PrintToConsole(L"\n");
PrintToConsole(L"\n");
- PrintToConsole(L"Local group memberships ");
+ PrintPaddedResourceString(IDS_USER_LOCAL_GROUPS);
if (dwLocalGroupTotal != 0 && pLocalGroupInfo != NULL)
{
for (i = 0; i < dwLocalGroupTotal; i++)
@@ -235,7 +262,7 @@
PrintToConsole(L"\n");
}
- PrintToConsole(L"Global group memberships ");
+ PrintPaddedResourceString(IDS_USER_GLOBAL_GROUPS);
if (dwGroupTotal != 0 && pGroupInfo != NULL)
{
for (i = 0; i < dwGroupTotal; i++)
@@ -279,31 +306,35 @@
*lpAllocated = FALSE;
- printf("Enter the password for user xxx: ");
- ReadFromConsole(szPassword1, PWLEN + 1, FALSE);
- printf("\n");
-
- printf("Enter the password again: ");
- ReadFromConsole(szPassword2, PWLEN + 1, FALSE);
- printf("\n");
-
- if (wcslen(szPassword1) == wcslen(szPassword2) &&
- wcscmp(szPassword1, szPassword2) == 0)
- {
- ptr = HeapAlloc(GetProcessHeap(),
- 0,
- (wcslen(szPassword1) + 1) * sizeof(WCHAR));
- if (ptr != NULL)
- {
- wcscpy(ptr, szPassword1);
- *lpPassword = ptr;
- *lpAllocated = TRUE;
- }
- }
- else
- {
- printf("The passwords do not match!");
- *lpPassword = NULL;
+ while (TRUE)
+ {
+ PrintResourceString(IDS_USER_ENTER_PASSWORD1);
+ ReadFromConsole(szPassword1, PWLEN + 1, FALSE);
+ printf("\n");
+
+ PrintResourceString(IDS_USER_ENTER_PASSWORD2);
+ ReadFromConsole(szPassword2, PWLEN + 1, FALSE);
+ printf("\n");
+
+ if (wcslen(szPassword1) == wcslen(szPassword2) &&
+ wcscmp(szPassword1, szPassword2) == 0)
+ {
+ ptr = HeapAlloc(GetProcessHeap(),
+ 0,
+ (wcslen(szPassword1) + 1) * sizeof(WCHAR));
+ if (ptr != NULL)
+ {
+ wcscpy(ptr, szPassword1);
+ *lpPassword = ptr;
+ *lpAllocated = TRUE;
+ return;
+ }
+ }
+ else
+ {
+ PrintResourceString(IDS_USER_NO_PASSWORD_MATCH);
+ *lpPassword = NULL;
+ }
}
}
Modified: trunk/reactos/base/applications/network/net/lang/en-US.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
==============================================================================
--- trunk/reactos/base/applications/network/net/lang/en-US.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/network/net/lang/en-US.rc [iso-8859-1] Sat Nov 8
21:44:32 2014
@@ -65,6 +65,31 @@
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\
SHARE | START | STATISTICS | STOP | TIME | USE | NET USER | VIEW ]\n"
+ IDS_USER_NAME "User name"
+ IDS_USER_FULL_NAME "Full name"
+ IDS_USER_COMMENT "Comment"
+ IDS_USER_USER_COMMENT "User comment"
+ IDS_USER_COUNTRY_CODE "Country code"
+ IDS_USER_ACCOUNT_ACTIVE "Account active"
+ IDS_USER_ACCOUNT_EXPIRES "Account expires"
+ IDS_USER_PW_LAST_SET "Password last set"
+ IDS_USER_PW_EXPIRES "Password expires"
+ IDS_USER_PW_CHANGEABLE "Password changeable"
+ IDS_USER_PW_REQUIRED "Password required"
+ IDS_USER_CHANGE_PW "User may change password"
+ IDS_USER_WORKSTATIONS "Workstations allowed"
+ IDS_USER_LOGON_SCRIPT "Logon script"
+ IDS_USER_PROFILE "User profile"
+ IDS_USER_HOME_DIR "Home directory"
+ IDS_USER_LAST_LOGON "Last logon"
+ IDS_USER_LOGON_HOURS "Logon hours allowed"
+ IDS_USER_LOCAL_GROUPS "Local group memberships"
+ IDS_USER_GLOBAL_GROUPS "Global group memberships"
+
+ IDS_USER_ENTER_PASSWORD1 "Enter a new password for the user: "
+ IDS_USER_ENTER_PASSWORD2 "Enter the password again: "
+ IDS_USER_NO_PASSWORD_MATCH "\nThe passwords do not match!\n"
+
IDS_ERROR_OPTION_NOT_SUPPORTED "The %s option is not supported yet.\n"
IDS_ERROR_INVALID_OPTION_VALUE "You entered an invalid value for the %s
option.\n"
END
Modified: trunk/reactos/base/applications/network/net/lang/ro-RO.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
==============================================================================
--- trunk/reactos/base/applications/network/net/lang/ro-RO.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/network/net/lang/ro-RO.rc [iso-8859-1] Sat Nov 8
21:44:32 2014
@@ -71,6 +71,31 @@
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\
SHARE | START | STATISTICS | STOP | TIME | USE | NET USER | VIEW ]\n"
+ IDS_USER_NAME "User name"
+ IDS_USER_FULL_NAME "Full name"
+ IDS_USER_COMMENT "Comment"
+ IDS_USER_USER_COMMENT "User comment"
+ IDS_USER_COUNTRY_CODE "Country code"
+ IDS_USER_ACCOUNT_ACTIVE "Account active"
+ IDS_USER_ACCOUNT_EXPIRES "Account expires"
+ IDS_USER_PW_LAST_SET "Password last set"
+ IDS_USER_PW_EXPIRES "Password expires"
+ IDS_USER_PW_CHANGEABLE "Password changeable"
+ IDS_USER_PW_REQUIRED "Password required"
+ IDS_USER_CHANGE_PW "User may change password"
+ IDS_USER_WORKSTATIONS "Workstations allowed"
+ IDS_USER_LOGON_SCRIPT "Logon script"
+ IDS_USER_PROFILE "User profile"
+ IDS_USER_HOME_DIR "Home directory"
+ IDS_USER_LAST_LOGON "Last logon"
+ IDS_USER_LOGON_HOURS "Logon hours allowed"
+ IDS_USER_LOCAL_GROUPS "Local group memberships"
+ IDS_USER_GLOBAL_GROUPS "Global group memberships"
+
+ IDS_USER_ENTER_PASSWORD1 "Enter a new password for the user: "
+ IDS_USER_ENTER_PASSWORD2 "Enter the password again: "
+ IDS_USER_NO_PASSWORD_MATCH "\nThe passwords do not match!\n"
+
IDS_ERROR_OPTION_NOT_SUPPORTED "The %s option is not supported yet.\n"
IDS_ERROR_INVALID_OPTION_VALUE "You entered an invalid value for the %s
option.\n"
END
Modified: trunk/reactos/base/applications/network/net/lang/ru-RU.rc
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
==============================================================================
--- trunk/reactos/base/applications/network/net/lang/ru-RU.rc [iso-8859-1] (original)
+++ trunk/reactos/base/applications/network/net/lang/ru-RU.rc [iso-8859-1] Sat Nov 8
21:44:32 2014
@@ -67,6 +67,31 @@
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |\n\
SHARE | START | STATISTICS | STOP | TIME | USE | NET USER | VIEW ]\n"
+ IDS_USER_NAME "User name"
+ IDS_USER_FULL_NAME "Full name"
+ IDS_USER_COMMENT "Comment"
+ IDS_USER_USER_COMMENT "User comment"
+ IDS_USER_COUNTRY_CODE "Country code"
+ IDS_USER_ACCOUNT_ACTIVE "Account active"
+ IDS_USER_ACCOUNT_EXPIRES "Account expires"
+ IDS_USER_PW_LAST_SET "Password last set"
+ IDS_USER_PW_EXPIRES "Password expires"
+ IDS_USER_PW_CHANGEABLE "Password changeable"
+ IDS_USER_PW_REQUIRED "Password required"
+ IDS_USER_CHANGE_PW "User may change password"
+ IDS_USER_WORKSTATIONS "Workstations allowed"
+ IDS_USER_LOGON_SCRIPT "Logon script"
+ IDS_USER_PROFILE "User profile"
+ IDS_USER_HOME_DIR "Home directory"
+ IDS_USER_LAST_LOGON "Last logon"
+ IDS_USER_LOGON_HOURS "Logon hours allowed"
+ IDS_USER_LOCAL_GROUPS "Local group memberships"
+ IDS_USER_GLOBAL_GROUPS "Global group memberships"
+
+ IDS_USER_ENTER_PASSWORD1 "Enter a new password for the user: "
+ IDS_USER_ENTER_PASSWORD2 "Enter the password again: "
+ IDS_USER_NO_PASSWORD_MATCH "\nThe passwords do not match!\n"
+
IDS_ERROR_OPTION_NOT_SUPPORTED "The %s option is not supported yet.\n"
IDS_ERROR_INVALID_OPTION_VALUE "You entered an invalid value for the %s
option.\n"
END
Modified: trunk/reactos/base/applications/network/net/main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
==============================================================================
--- trunk/reactos/base/applications/network/net/main.c [iso-8859-1] (original)
+++ trunk/reactos/base/applications/network/net/main.c [iso-8859-1] Sat Nov 8 21:44:32
2014
@@ -65,6 +65,25 @@
VOID
+PrintPaddedResourceString(
+ INT resID)
+{
+ WCHAR szMsgBuffer[MAX_BUFFER_SIZE];
+ INT nLength, nPaddedLength = 29, i;
+
+ nLength = LoadStringW(GetModuleHandle(NULL), resID, szMsgBuffer, MAX_BUFFER_SIZE);
+ if (nLength < nPaddedLength)
+ {
+ for (i = nLength; i < nPaddedLength; i++)
+ szMsgBuffer[i] = L' ';
+ szMsgBuffer[nPaddedLength] = UNICODE_NULL;
+ }
+
+ WriteToConsole(szMsgBuffer);
+}
+
+
+VOID
PrintToConsole(
LPWSTR lpFormat,
...)
Modified: trunk/reactos/base/applications/network/net/net.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
==============================================================================
--- trunk/reactos/base/applications/network/net/net.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/network/net/net.h [iso-8859-1] Sat Nov 8 21:44:32
2014
@@ -31,6 +31,10 @@
...);
VOID
+PrintPaddedResourceString(
+ INT resID);
+
+VOID
PrintToConsole(
LPWSTR lpFormat,
...);
Modified: trunk/reactos/base/applications/network/net/resource.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/network/…
==============================================================================
--- trunk/reactos/base/applications/network/net/resource.h [iso-8859-1] (original)
+++ trunk/reactos/base/applications/network/net/resource.h [iso-8859-1] Sat Nov 8
21:44:32 2014
@@ -45,5 +45,30 @@
#define IDS_HELP_SYNTAX 142
#define IDS_NET_SYNTAX 143
+#define IDS_USER_NAME 450
+#define IDS_USER_FULL_NAME 451
+#define IDS_USER_COMMENT 452
+#define IDS_USER_USER_COMMENT 453
+#define IDS_USER_COUNTRY_CODE 454
+#define IDS_USER_ACCOUNT_ACTIVE 455
+#define IDS_USER_ACCOUNT_EXPIRES 456
+#define IDS_USER_PW_LAST_SET 457
+#define IDS_USER_PW_EXPIRES 458
+#define IDS_USER_PW_CHANGEABLE 459
+#define IDS_USER_PW_REQUIRED 460
+#define IDS_USER_CHANGE_PW 461
+#define IDS_USER_WORKSTATIONS 462
+#define IDS_USER_LOGON_SCRIPT 463
+#define IDS_USER_PROFILE 464
+#define IDS_USER_HOME_DIR 465
+#define IDS_USER_LAST_LOGON 466
+#define IDS_USER_LOGON_HOURS 467
+#define IDS_USER_LOCAL_GROUPS 468
+#define IDS_USER_GLOBAL_GROUPS 469
+
+#define IDS_USER_ENTER_PASSWORD1 490
+#define IDS_USER_ENTER_PASSWORD2 491
+#define IDS_USER_NO_PASSWORD_MATCH 492
+
#define IDS_ERROR_OPTION_NOT_SUPPORTED 500
#define IDS_ERROR_INVALID_OPTION_VALUE 501