@prefix sioc: <http://rdfs.org/sioc/ns#> .
@prefix dc: <http://purl.org/dc/elements/1.1/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix content: <http://purl.org/rss/1.0/modules/content/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<https://lhero.org/portfolio/lh-profile-page/>
  a sioc:Post ;
  dc:title "MCP Abilities" ;
  dcterms:identifier 148128 ;
  dc:modified "2026-09-22T00:27:12Z"^^xsd:dateTime ;
  dc:created "2026-09-22T00:27:12Z"^^xsd:dateTime ;
  sioc:link <https://lhero.org/portfolio/lh-profile-page/mcp-abilities/> ;
  sioc:has_creator <https://lhero.org/author/1/#account> ;
  sioc:has_container <https://lhero.org/#posts> ;
  content:encoded "<ul class=\"lh_portfolio-meta\"><li><strong>Part of:</strong> <a href=\"https://lhero.org/portfolio/lh-profile-page/\">LH Profile Page</a></li></ul><p class=\"wp-block-paragraph\">Both abilities are in the <code>lh-profile-page</code> category, require <code>promote_users</code>, and act on the current site only.</p><h2 class=\"wp-block-heading\"><code>lh-profile-page/create-or-fill-user</code></h2><p class=\"wp-block-paragraph\">Class <code>LH_Profile_Create_Or_Fill_User_Ability</code> (<code>includes/lh-profile-create-or-fill-user-ability-class.php</code>). Replaces <code>lh-buddypress-add-user/create-user</code>. Creates a user from an email, first and last name and typed profile fields, or fills in what an existing account is missing. Requires LH User Provisioning.</p><ul class=\"wp-block-list\"><li><strong>Inputs:</strong> <code>email</code> (required), <code>first_name</code>, <code>last_name</code>, <code>fields</code> (profile fields, schema from <code>LH_Profile_Fill_Fields</code>), <code>group_id</code> (new users only), <code>existing_user</code> (<code>refuse</code> by default, or <code>fill_missing</code>), <code>dry_run</code> (default <code>true</code>).</li><li><strong>Existing users</strong> are found by email or a registered email alias (<code>lh_user_provisioning_resolve_user()</code>). With <code>fill_missing</code>, names and profile fields are filled only where empty; the address is filled as one unit only when street address, town and postcode are all empty. Nothing existing is overwritten, and no organisation membership or group is changed.</li><li><strong>Role:</strong> <code>unclaimed</code> is the only role the ability assigns; there is no role input. A new user gets it on the current site. An existing user with no account on the site is added with it; one with an account on the site but no role on it is given it; one who already has a role on the site keeps it. A site account and role are separate from organisation membership.</li><li><strong>Last activity:</strong> LH User Provisioning (1.3.3+) seeds a new user&#8217;s BuddyPress last activity from their registration date, and never bumps an existing value.</li><li><strong>Result:</strong> <code>action</code> (<code>created</code>, <code>would_create</code>, <code>filled</code>, <code>would_fill</code>); <code>site</code> (<code>added</code>/<code>would_add</code>, <code>role_added</code>/<code>would_add_role</code>, <code>already_on_site</code> or <code>failed</code>, where <code>added</code> and <code>role_added</code> are checked against the stored role); <code>group</code> when a <code>group_id</code> was given; and a per-field report (<code>filled</code>, <code>would_fill</code>, <code>skipped</code>, <code>rejected</code>, <code>failed</code>, <code>unknown_field</code>).</li></ul><h2 class=\"wp-block-heading\"><code>lh-profile-page/search-users</code></h2><p class=\"wp-block-paragraph\">Searches users on the current site by any combination of profile fields: phone (digits-only partial match against primary and secondary), email, names, town, street address, state/province and country (partial), postcode (exact), gender (exact, one of Male, Female, Organisation, Robot) and a birthdate range (<code>birthdate_before</code>/<code>birthdate_after</code>, inclusive). Values within a field are OR-ed; <code>match_mode</code> combines fields with AND (default) or OR. <code>limit</code> defaults to 20, maximum 100. Each result includes the profile fields and, when LH Vcard is active, a signed short-lived vcard link.</p>"^^rdf:XMLLiteral ;
  sioc:content "Part of: LH Profile PageBoth abilities are in the lh-profile-page category, require promote_users, and act on the current site only.lh-profile-page/create-or-fill-userClass LH_Profile_Create_Or_Fill_User_Ability (includes/lh-profile-create-or-fill-user-ability-class.php). Replaces lh-buddypress-add-user/create-user. Creates a user from an email, first and last name and typed profile fields, or fills in what an existing account is missing. Requires LH User Provisioning.Inputs: email (required), first_name, last_name, fields (profile fields, schema from LH_Profile_Fill_Fields), group_id (new users only), existing_user (refuse by default, or fill_missing), dry_run (default true).Existing users are found by email or a registered email alias (lh_user_provisioning_resolve_user()). With fill_missing, names and profile fields are filled only where empty; the address is filled as one unit only when street address, town and postcode are all empty. Nothing existing is overwritten, and no organisation membership or group is changed.Role: unclaimed is the only role the ability assigns; there is no role input. A new user gets it on the current site. An existing user with no account on the site is added with it; one with an account on the site but no role on it is given it; one who already has a role on the site keeps it. A site account and role are separate from organisation membership.Last activity: LH User Provisioning (1.3.3+) seeds a new user&#8217;s BuddyPress last activity from their registration date, and never bumps an existing value.Result: action (created, would_create, filled, would_fill); site (added/would_add, role_added/would_add_role, already_on_site or failed, where added and role_added are checked against the stored role); group when a group_id was given; and a per-field report (filled, would_fill, skipped, rejected, failed, unknown_field).lh-profile-page/search-usersSearches users on the current site by any combination of profile fields: phone (digits-only partial match against primary and secondary), email, names, town, street address, state/province and country (partial), postcode (exact), gender (exact, one of Male, Female, Organisation, Robot) and a birthdate range (birthdate_before/birthdate_after, inclusive). Values within a field are OR-ed; match_mode combines fields with AND (default) or OR. limit defaults to 20, maximum 100. Each result includes the profile fields and, when LH Vcard is active, a signed short-lived vcard link." ;
  sioc:topic <https://lhero.org/?taxonomy=author&term=cap-1> .

<https://lhero.org/author/1/#account> rdfs:seeAlso <https://lhero.org/author/1/?feed=lhrdf&format=turtle> .
<https://lhero.org/?taxonomy=author&term=cap-1> rdfs:seeAlso <https://lhero.org/?taxonomy=author&term=cap-1&feed=lhrdf&format=turtle> .
