Digital Sovereignty for everyone

Ability implementation notes

  • create-or-fill-user is LH_Profile_Create_Or_Fill_User_Ability (includes/lh-profile-create-or-fill-user-ability-class.php). It replaced lh-buddypress-add-user/create-user and needs LH User Provisioning, which resolves existing users by email or registered alias (lh_user_provisioning_resolve_user()) and, from 1.3.3, seeds a new user’s BuddyPress last activity from their registration date without ever bumping an existing value. Its profile field schema comes from LH_Profile_Fill_Fields.
  • search-users is LH_Profile_Search_Users_Ability (includes/lh-profile-search-users-ability-class.php). Since 3.8.0 it is the network’s only user-lookup ability. Other plugins extend it with the lh_profile_search_users_input_properties, _result_properties, _restrictions and _results filters: LH Membership adds membership status, and LH Contacts adds a signed short-lived vcard_url (LH Vcard did until LH Contacts replaced it).
  • update-user-profile (3.15.0) is LH_Profile_Update_User_Profile_Ability (includes/lh-profile-update-user-profile-ability-class.php), the overwrite counterpart to create-or-fill-user for corrections such as membership triage fixes. It validates with LH_Profile_Fill_Fields::validate_value() and LH_Profile_Known_As_Field::validate(), then writes through LH_Profile_Field_Saver in overwrite mode with clear_empty. The confirm token is a site transient keyed by the token’s hash and bound to actor, user, site and the exact before/after values, as set-primary-site does. Who may use it mirrors sync-display-name and reuses its return_claimed_roles(): profile fields are network-wide, so promote_users only reaches users unclaimed on every site. Each apply records account.profile_updated in LH Audit Trail (member-visible, retention_days 0), with the lh-tasks task_id captured on wp_ability_normalize_input at priority 5, before lh-tasks strips it. Capabilities are filterable with lh_profile_update_user_profile_return_capability and _return_unrestricted_capability. No member notification, by decision.
  • Since 3.16.0 update-user-profile takes display_name_from: the display name is built with LH_Profile_Sync_Display_Name_Ability::return_options() from the names as they will be after the change (overrides for first_name, last_name and nickname), never free text, and goes into the same preview, token and audit entry. A display name that followed a changed Known as is recorded too. sync-display-name records its writes through the public LH_Profile_Update_User_Profile_Ability::record_audit(), with the task from take_task_id(), so every display name change by ability is on the audit trail.

If you like this plugin please consider making a donation to further development

Install LHero.org

lhero.org

Open it straight from your home screen, full screen and quicker to load.

  1. Tap the Share button . If you cannot see it, tap ••• first.
  2. Scroll down and tap Add to Home Screen.
  3. Tap Add.
  1. Tap the browser menu â‹®.
  2. Tap Install app or Add to Home screen.
  1. In the menu bar, choose File, then Add to Dock.

Use your browser's menu to install this site or add it to your home screen.