private function prepare_realname($p_user_info, $p_username) { switch ($this->_mail_preferred_realname) { case 'email_address': $t_realname = $p_user_info['email']; break; case 'email_no_domain': if (preg_match(email_regex_simple(), $p_user_info['email'], $t_check)) { $t_local = $t_check[1]; $t_domain = $t_check[2]; $t_realname = $t_local; } break; case 'from_ldap': $t_realname = ldap_realname_from_username($p_username); break; case 'full_from': $t_realname = str_replace(array('<', '>'), array('(', ')'), $p_user_info['From']); break; case 'name': default: $t_realname = $p_user_info['name']; } $t_realname = string_normalize($t_realname); if (utf8_strlen($t_realname) > DB_FIELD_SIZE_REALNAME) { $t_realname = utf8_substr($t_realname, 0, DB_FIELD_SIZE_REALNAME); } if (user_is_realname_valid($t_realname) && user_is_realname_unique($p_username, $t_realname)) { return $t_realname; } return FALSE; }
function user_ensure_realname_valid($p_realname) { if (!user_is_realname_valid($p_realname)) { trigger_error(ERROR_USER_REAL_NAME_INVALID, ERROR); } }
public function post($request) { /** * Creates a new user. * * The user will get a confirmation email, and will have the password provided * in the incoming representation. * * @param $request - The Request we're responding to */ if (!access_has_global_level(config_get('manage_user_threshold'))) { throw new HTTPException(403, "Access denied to create user"); } $new_user = new User(); $new_user->populate_from_repr($request->body); $username = $new_user->mantis_data['username']; $password = $new_user->mantis_data['password']; $email = email_append_domain($new_user->mantis_data['email']); $access_level = $new_user->mantis_data['access_level']; $protected = $new_user->mantis_data['protected']; $enabled = $new_user->mantis_data['enabled']; $realname = $new_user->mantis_data['realname']; if (!user_is_name_valid($username)) { throw new HTTPException(500, "Invalid username"); } elseif (!user_is_realname_valid($realname)) { throw new HTTPException(500, "Invalid realname"); } user_create($username, $password, $email, $access_level, $protected, $enabled, $realname); $new_user_id = user_get_id_by_name($username); $new_user_url = User::get_url_from_mantis_id($new_user_id); $this->rsrc_data = $new_user_url; $resp = new Response(); $resp->status = 201; $resp->headers[] = "location: {$new_user_url}"; $resp->body = $this->_repr($request); return $resp; }