Skip to content

Releases: DiluxOne/diluxone-multisite-user-sync-wordpress

Development build 2.0.1-dev.20

Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Oct 21:33
b6f9fc6

Development build 2.0.1-dev.20 of DiluxOne wpm-user-sync, from commit b6f9fc6. Not a release: it is replaced on every push to main, it is not on wordpress.org, and a site that installs it updates to the release when it is published.

Install: download wpm-user-sync.zip below, then in WordPress: Plugins → Add New → Upload Plugin. Status › System shows the version and the build.

Coming in the next version:

  • The plugin is now called DiluxOne Multisite User Sync, in the DiluxOne family. Nothing else changes for your network: same settings, same screens, same slug.
  • Requires PHP 8.0 or newer (it was 7.4). Tested with WordPress 7.1.
  • Security: the new-site trigger gave each new site's members the role they held on the main site, so main-site editors and administrators became editors and administrators of every new site. Every new membership now gets the new site's own default role, and subscriber when that role does not exist there.
  • Security: the role trigger copied any role, administrator included, to every site the user belonged to, even where the role does not exist. It now copies a role only to sites that define it, never copies administrator (a developer can allow it with the wpmus_replicate_role filter), leaves super admins alone and ignores changes that change nothing.
  • Security: any site administrator could run the site-level "Sync from scratch" and pull every account of the network into their site. The site screens and their action are now for super admins only, and so are the network actions.
  • People removed from a site were put back on it at their next sign-in, and by the new-user trigger and the manual sync. The plugin now remembers who was removed from which site and no sync adds them back, unless you tick "Also add back people who were removed from a site" on a manual sync. Adding someone back yourself clears the record.
  • Removed: the catch-up sync that ran on every sign-in. Accounts created outside the normal flows (imports, SQL) are added with the manual network sync.
  • Super admins are no longer added as members of every site, and archived, spam and deleted sites, and the sites of other networks on the same install, are left alone.
  • The new-site trigger now listens on wp_initialize_site instead of the deprecated wpmu_new_blog, and the new-user trigger also covers accounts created with wp_insert_user() alone (some registration plugins), once per account.
  • Turning a trigger on or off takes effect immediately instead of from the next page load.
  • Big networks: syncs no longer load every user into memory, and a large one (a new site or a manual sync on a big network, a new user on a network with many sites) runs in the background through WP-Cron in batches, with its progress on the Network Sync Actions screen; the background runs commit their writes together about once a second instead of one at a time. Small syncs still finish at once.
  • New filters for developers: wpmus_excluded_site_ids, wpmus_should_sync_user, wpmus_replicate_role, wpmus_sync_inline_limit, wpmus_sync_batch_size, wpmus_sync_time_limit and wpmus_sync_group_writes.
  • On a site that is not a network, the plugin now only explains that it needs WordPress Multisite and deactivates itself; nothing else of it runs in the meantime.
  • Uninstalling now also removes the background sync queue, its scheduled event and the record of removals.
  • The plugin's stylesheet loads only on its own screens instead of on every admin screen.
  • Translations written for Spanish (Argentina, Spain, Mexico), Portuguese (Brazil, Portugal), French, German and Italian, to be contributed to translate.wordpress.org; WordPress installs them from there. The plugin no longer loads translations itself.

2.0.0

Choose a tag to compare

@dilux-release dilux-release released this 08 Oct 21:53
9b9761d

Requires PHP 8.0. Security fixes: new sites no longer copy main-site roles, removed people stay removed, administrator is never copied, and site administrators can no longer pull the whole network into their site.

What was merged since 1.5.0

🐛 Fixes

  • admin escape two outputs, verify a nonce, literal SQL (#36)
  • coverage measure line coverage of every layer and fail below the floors (#30)
  • sync commit a batch's writes in groups of about a second (#29)
  • sync keep jobs queued during a batch and retry a queue a dead run left locked (#28)
  • sync safe roles on new sites, removals respected, super admins and inactive sites skipped, batched syncs (#25)

👷 CI

  • release publish to wordpress.org instead of rehearsing (#41)
  • workflows adopt the organisation's v5 setup (#37)
  • policy let strict Plugin Check accept the published slug (#34)

🔧 Maintenance

  • release 2.0.0 (#40)
  • policy the commented example names Sonnet 5.5, the organisation's reviewer (#27)
  • ⚠️ breaking plugin join the DiluxOne family as DiluxOne Multisite User Sync on PHP 8.0 (#26)

1.5.0

Choose a tag to compare

@github-actions github-actions released this 05 May 10:21
249973f
Release 1.5.0: OOP refactor + security hardening + Azure positioning