Skip to content

Commit 8bee8c7

Browse files
authored
Merge pull request #1660 from robertstinnett/dmxrob-firstlastnamecheck
Add config and check for user to enter full real name
2 parents baa4c27 + c9a6f4c commit 8bee8c7

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

bbs/newuser.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
#include "sdk/usermanager.h"
6464
#include <chrono>
6565
#include <string>
66+
#include <sstream>
6667

6768
using std::chrono::milliseconds;
6869
using wwiv::common::InputMode;
@@ -170,13 +171,26 @@ void input_name() {
170171
} while (!ok && !a()->sess().hangup());
171172
}
172173

174+
// Function to check if both first and last names are entered
175+
bool containsFirstAndLastName(const std::string& name) {
176+
std::istringstream stream(name);
177+
std::string part;
178+
int count = 0;
179+
180+
while (stream >> part) {
181+
++count;
182+
}
183+
184+
return count >= 2;
185+
}
186+
173187
void input_realname() {
174188
if (a()->config()->sysconfig_flags() & sysconfig_allow_alias) {
175189
do {
176190
bout.nl();
177191
bout.outstr("|#3Enter your FULL real name.\r\n");
178192
std::string temp_local_name = bin.input_proper(a()->user()->real_name(), 30);
179-
if (temp_local_name.empty()) {
193+
if (temp_local_name.empty() || ((nc.first_last_name_required == newuser_item_type_t::required) && !containsFirstAndLastName(temp_local_name) )) {
180194
bout.nl();
181195
bout.outstr("|#6Sorry, you must enter your FULL real name.\r\n");
182196
} else {

sdk/config.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ struct newuser_config_t {
4949
newuser_item_type_t use_birthday{newuser_item_type_t::required};
5050
newuser_item_type_t use_computer_type{newuser_item_type_t::required};
5151
newuser_item_type_t use_email_address{newuser_item_type_t::required};
52+
newuser_item_type_t first_last_name_required{newuser_item_type_t::required};
5253
};
5354

5455
struct system_toggles_t {

wwivconfig/new_user.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,14 @@ void newuser_settings(wwiv::sdk::Config& config, wwiv::sdk::newuser_config_t& nc
7676
items.add(new Label("Real Name:"),
7777
new ToggleEditItem<wwiv::sdk::newuser_item_type_t>(newuser_item_type_list, &nc.use_real_name),
7878
"Ask Callers for a real name. This may be needed for some networks", 1, y);
79+
items.add(new Label("First & Last Name Required:"),
80+
new ToggleEditItem<wwiv::sdk::newuser_item_type_t>(newuser_item_type_list, &nc.first_last_name_required),
81+
"Require both a first and last name if real name is required", 3, y);
82+
++y;
7983
items.add(new Label("Email Address:"),
8084
new ToggleEditItem<wwiv::sdk::newuser_item_type_t>(newuser_item_type_list, &nc.use_email_address),
81-
"Ask callers for an email address", 3, y);
85+
"Ask callers for an email address", 1, y);
86+
++y;
8287
++y;
8388
items.add(new Label("Voice Phone:"),
8489
new ToggleEditItem<wwiv::sdk::newuser_item_type_t>(newuser_item_type_list, &nc.use_voice_phone),

0 commit comments

Comments
 (0)