.
// functions related to account creation and login:
// - forms for create / login
// - function to make login token
include_once("../inc/consent.inc");
// If have recent token, return it.
// Else make login token, store in user record, return token
//
function make_login_token($user) {
$now = time();
if ($now - $user->login_token_time < 86400) {
$user->update("login_token_time=$now");
return $user->login_token;
}
$token = substr(random_string(), 0, 8);
$user->update("login_token='$token', login_token_time=$now");
return $token;
}
// return HTML string for a checkbox for toggling password visibility
//
function passwd_visible_checkbox($name) {
return sprintf('
', $name,
tra("Show password")
);
}
function create_account_form($teamid, $next_url) {
global $recaptcha_public_key;
form_input_hidden('next_url', $next_url);
if ($teamid) {
form_input_hidden('teamid', $teamid);
}
// Using invitation codes to restrict access?
//
if (defined('INVITE_CODES')) {
form_input_text(
sprintf('%s',
tra("An invitation code is required to create an account."),
tra("Invitation code")
),
"invite_code"
);
}
form_input_text(
sprintf('%s',
tra("Identifies you on our web site. Use your real name or a nickname."),
tra("Screen name")
),
"new_name"
);
form_input_text(
sprintf('%s',
tra("Must be a valid address of the form 'name@domain'."),
tra("Email address")
),
"new_email_addr"
);
$min_passwd_length = parse_element(get_config(), "");
if (!$min_passwd_length) {
$min_passwd_length = 6;
}
form_input_text(
sprintf('%s',
tra("Must be at least %1 characters", $min_passwd_length),
tra("Password")
),
"passwd", "", "password",'id="passwd"',passwd_visible_checkbox("passwd")
);
if (USER_COUNTRY) {
form_select(
sprintf('%s',
tra("Select the country you want to represent, if any."),
tra("Country")
),
"country",
country_select_options()
);
}
if (POSTAL_CODE) {
form_input_text(
tra("Postal or ZIP Code")." ".tra("Optional")."",
"postal_code"
);
}
// Add terms of use to Web form. User must agree by checking the checkbox.
list($checkct, $ctid) = check_consent_type(CONSENT_TYPE_ENROLL);
if ($checkct and check_termsofuse()) {
$terms_of_use = trim(file_get_contents(TERMSOFUSE_FILE));
if ($terms_of_use) {
panel(tra('Terms of Use'), function() use($terms_of_use) {
echo nl2br($terms_of_use);
}
);
$myitems = array(
array("agree_to_terms_of_use", "", false),
);
form_checkboxes(tra("Do you agree to the terms of use above?"), $myitems, 'tabindex="0"');
}
}
}
function login_form($next_url) {
form_start(secure_url_base()."/login_action.php", "post");
form_input_hidden("next_url", $next_url);
if (LDAP_HOST) {
$x = "Email address or LDAP user name:";
} else {
$x = tra("Email address:");
}
form_input_text($x, "email_addr", '', 'text', $attrs='autofocus tabindex="1"');
form_input_text(
tra("Password:").' ' . tra("forgot password?") . "",
"passwd",
"",
"password",
'id="passwd" tabindex="2"',
passwd_visible_checkbox("passwd")
);
form_checkboxes(tra("Stay logged in"),
array(array("stay_logged_in", "", true)),
'tabindex="3"'
);
form_submit(tra("Log in"), 'tabindex="4"');
form_end();
}
function user_agreetermsofuse_form($next_url) {
form_start(secure_url_base()."/user_agreetermsofuse_action.php", "post");
form_input_hidden("next_url", $next_url);
$terms_of_use = trim(file_get_contents(TERMSOFUSE_FILE));
if ($terms_of_use) {
panel(tra('Terms of Use'), function() use($terms_of_use) {
echo nl2br($terms_of_use);
}
);
$myitems = array(
array("agree_to_terms_of_use", "", false),
);
form_checkboxes(tra("Do you agree to the terms of use above?"), $myitems, 'tabindex="0"');
}
else {
// error - no terms of use for user to agree to!
}
form_submit(tra("I agree"));
form_end();
}
?>