Add confirmation of the password that got entered.
PR: 29893 (among others)
This commit is contained in:
parent
cb33306f41
commit
ab6ff2fee1
@ -63,6 +63,7 @@ static char gname[GNAME_FIELD_LEN],
|
||||
gmemb[GMEMB_FIELD_LEN],
|
||||
uname[UT_NAMESIZE + 1],
|
||||
passwd[PASSWD_FIELD_LEN],
|
||||
confpasswd[PASSWD_FIELD_LEN],
|
||||
uid[UID_FIELD_LEN],
|
||||
ugroup[UGROUP_FIELD_LEN],
|
||||
gecos[GECOS_FIELD_LEN],
|
||||
@ -78,7 +79,7 @@ static int okbutton, cancelbutton;
|
||||
#define USER_DIALOG_Y 0
|
||||
#define USER_DIALOG_X 8
|
||||
#define USER_DIALOG_WIDTH COLS - 16
|
||||
#define USER_DIALOG_HEIGHT LINES - 2
|
||||
#define USER_DIALOG_HEIGHT LINES - 1
|
||||
|
||||
/* The group configuration menu. */
|
||||
static Layout groupLayout[] = {
|
||||
@ -108,42 +109,46 @@ static Layout groupLayout[] = {
|
||||
/* The user configuration menu. */
|
||||
static Layout userLayout[] = {
|
||||
#define LAYOUT_UNAME 0
|
||||
{ 3, 6, UT_NAMESIZE, UT_NAMESIZE + 1,
|
||||
{ 2, 6, UT_NAMESIZE, UT_NAMESIZE + 1,
|
||||
"Login ID:", "The login name of the new user (mandatory)",
|
||||
uname, STRINGOBJ, NULL },
|
||||
#define LAYOUT_UID 1
|
||||
{ 3, 23, 8, UID_FIELD_LEN - 1,
|
||||
{ 2, 23, 8, UID_FIELD_LEN - 1,
|
||||
"UID:", "The numerical ID for this user (leave blank for automatic choice)",
|
||||
uid, STRINGOBJ, NULL },
|
||||
#define LAYOUT_UGROUP 2
|
||||
{ 3, 33, 8, UGROUP_FIELD_LEN - 1,
|
||||
{ 2, 33, 8, UGROUP_FIELD_LEN - 1,
|
||||
"Group:", "The login group name for this user (leave blank for automatic choice)",
|
||||
ugroup, STRINGOBJ, NULL },
|
||||
#define LAYOUT_PASSWD 3
|
||||
{ 3, 43, 15, PASSWD_FIELD_LEN - 1,
|
||||
{ 6, 6, 20, PASSWD_FIELD_LEN - 1,
|
||||
"Password:", "The password for this user (enter this field with care!)",
|
||||
passwd, NO_ECHO_OBJ(STRINGOBJ), NULL },
|
||||
#define LAYOUT_GECOS 4
|
||||
{ 8, 6, 33, GECOS_FIELD_LEN - 1,
|
||||
#define LAYOUT_CONFPASSWD 4
|
||||
{ 6, 28, 20, PASSWD_FIELD_LEN - 1,
|
||||
"Confirm Password:", "Confirm what you typed for the password",
|
||||
confpasswd, NO_ECHO_OBJ(STRINGOBJ), NULL },
|
||||
#define LAYOUT_GECOS 5
|
||||
{ 10, 6, 33, GECOS_FIELD_LEN - 1,
|
||||
"Full name:", "The user's full name (comment)",
|
||||
gecos, STRINGOBJ, NULL },
|
||||
#define LAYOUT_UMEMB 5
|
||||
{ 8, 43, 15, UMEMB_FIELD_LEN - 1,
|
||||
#define LAYOUT_UMEMB 6
|
||||
{ 10, 43, 15, UMEMB_FIELD_LEN - 1,
|
||||
"Member groups:", "The groups this user belongs to (i.e. gets access rights for)",
|
||||
umemb, STRINGOBJ, NULL },
|
||||
#define LAYOUT_HOMEDIR 6
|
||||
{ 13, 6, 20, HOMEDIR_FIELD_LEN - 1,
|
||||
#define LAYOUT_HOMEDIR 7
|
||||
{ 14, 6, 20, HOMEDIR_FIELD_LEN - 1,
|
||||
"Home directory:", "The user's home directory (leave blank for default)",
|
||||
homedir, STRINGOBJ, NULL },
|
||||
#define LAYOUT_SHELL 7
|
||||
{ 13, 29, 29, SHELL_FIELD_LEN - 1,
|
||||
#define LAYOUT_SHELL 8
|
||||
{ 14, 29, 29, SHELL_FIELD_LEN - 1,
|
||||
"Login shell:", "The user's login shell (leave blank for default)",
|
||||
shell, STRINGOBJ, NULL },
|
||||
#define LAYOUT_U_OKBUTTON 8
|
||||
#define LAYOUT_U_OKBUTTON 9
|
||||
{ 18, 15, 0, 0,
|
||||
"OK", "Select this if you are happy with these settings",
|
||||
&okbutton, BUTTONOBJ, NULL },
|
||||
#define LAYOUT_U_CANCELBUTTON 9
|
||||
#define LAYOUT_U_CANCELBUTTON 10
|
||||
{ 18, 35, 0, 0,
|
||||
"CANCEL", "Select this if you wish to cancel this screen",
|
||||
&cancelbutton, BUTTONOBJ, NULL },
|
||||
@ -421,6 +426,10 @@ verifyUserSettings(WINDOW *ds_win)
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (strcmp(passwd, confpasswd)) {
|
||||
feepout("Passwords don't match");
|
||||
return 0;
|
||||
}
|
||||
if ((homedir[0]!=0) && (homedir[0]!='/')) {
|
||||
feepout("The pathname for home directories must begin with a '/'.");
|
||||
return 0;
|
||||
@ -682,7 +691,7 @@ userAddUser(dialogMenuItem *self)
|
||||
draw_box(ds_win, USER_DIALOG_Y + 1, USER_DIALOG_X + 3, USER_DIALOG_HEIGHT - 6,
|
||||
USER_DIALOG_WIDTH - 6, dialog_attr, border_attr);
|
||||
wattrset(ds_win, dialog_attr);
|
||||
mvwaddstr(ds_win, USER_DIALOG_Y + 1, USER_DIALOG_X + 22, " Add a new user ");
|
||||
mvwaddstr(ds_win, USER_DIALOG_Y + 1, USER_DIALOG_X + 24, " Add a new user ");
|
||||
|
||||
CLEAR(uname);
|
||||
CLEAR(uid);
|
||||
|
Loading…
x
Reference in New Issue
Block a user