WP Manifestindependent plugin directory
manifest / content / disciple-tools-share-app

Disciple.Tools - Share App WP Registry grade C-. High-severity findings · 1 findingWP RegistryHigh-severity findings · 1 findingOpen the reportC-

Generate a simple gospel share tracker for every contact and user.

★ 0stars
208release downloads
≈40active sites
1.2.1latest · 1 year ago

Install

Download disciple-tools-share-app.zip From the 1.2.1 release on GitHub, Mar 17, 2025

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/discipletools/disciple-tools-share-app/releases/download/1.2.1/disciple-tools-share-app.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

Plugin Banner

Purpose

This app generates a magic link for each contact and user that can be used to track closed and open gospel shares, as well as a simple followup form. If added to the home screen on a mobile phone, it creates a simple tool for face to face evangelism.

Usage

Will Do

  • Simple logging of open and closed gospel sharing attempts.
  • Simple personal map record of your gospel shares.
  • Personal metrics map of all gospel shares in the system.
  • Magic link can be installed on home screen of mobile phones for quick access.
  • Metrics map that shows all gospel shares for all users and contacts.
  • Bulk link distribution enabled through the lists page on contacts.

Requirements

  • Disciple Tools Theme installed on a Wordpress Server

Installing

  • Install as a standard Disciple.Tools/Wordpress plugin in the system Admin/Plugins area.
  • Requires the user role of Administrator.

Contribution

Contributions welcome. You can report issues and bugs in the Issues section of the repo. You can present ideas in the Discussions section of the repo. And code contributions are welcome using the Pull Request system for git. For a more details on contribution see the contribution guidelines.

Screenshots

Home screen on mobile (very simple design and easy to pull up on site)

Screenshot 1

Personal Map screen

Screenshot 2

Contact tile

Screenshot 3

User tile

Screenshot 4

Releases

8 releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
1.2.1 latest
Mar 17, 2025 1 year ago
disciple-tools-share-app.zip
40
1.2
Aug 9, 2024 2 years ago
disciple-tools-share-app.zip
42
1.1
Oct 24, 2023 2 years ago
disciple-tools-share-app.zip
40
1.0
Apr 6, 2022 4 years ago
disciple-tools-share-app.zip
48
0.6
Jan 7, 2022 4 years ago
disciple-tools-share-app.zip
12
0.5
Dec 15, 2021 4 years ago
disciple-tools-share-app.zip
8
0.4
Dec 6, 2021 4 years ago
disciple-tools-share-app.zip
9
0.3
Dec 5, 2021 4 years ago
disciple-tools-share-app.zip
9

Active-site estimate ≈40 comes from the median of recent superseded releases. Method.

C- grade

Security

Disciple.Tools - Share App 1.2.1 · audited by WP Registry

High-severity findings.

1 high
Audited release
1.2.1
Findings
1
Worst severity
high
Content hash
33b9c3c2b77940afd5314bb9…

Findings

  • high Unauthenticated REST share-app endpoint creates CRM contacts and leaks GPS reports without magic-link verification

    missing_permission_callback

    DT_Share_Magic_Link always instantiates DT_Magic_Url_Base, whose authorize_url sets dt_allow_rest_access when REQUEST_URI contains share_app/v1/ocf, so Disciple.Tools' rest_authentication_errors lockdown does not apply to anonymous callers. add_endpoints() registers POST /wp-json/share_app/v1/ocf with no permission_callback (WordPress treats that as public). endpoint() requires params['parts'] and params['action'] then uses the client-supplied parts object as-is; it never calls DT_Magic_URL::verify_rest_endpoint_permissions_on_post (the theme helper that binds public_key/meta_key to post_id). action=followup sanitizes name/phone/email then DT_Posts::create_post('contacts', $fields, false, false) — the fourth argument skips can_create, the third is not silent so assigned users are notified. Fields written: title, assigned_to (from get_post_meta(parts.post_id, 'corresponds_to_user')), subassigned to that post_id, type=access, contact_phone, contact_email, notes. action=log inserts attacker GPS into $wpdb->dt_reports. action=geojson returns every share_app/ocf lat/lng/label for attacker-chosen post_id. Observable: a new published contacts row (shared with the site base user when uid=0), assignment notifications, and a GeoJSON dump of field-worker locations. Sequential contact IDs are enough; no magic key, nonce, captcha, or rate limit.

    magic-link/magic-link-ocf.php:169-336

    Recommendation

    Use DT_Magic_URL::verify_rest_endpoint_permissions_on_post (or an equivalent public_key/meta_key match that re-resolves post_id server-side) as the permission_callback so only a valid share_app/ocf magic URL can call the route. Do not trust client-supplied parts.post_id. Keep the field allowlist. Add rate limiting on followup/log. Prefer check_permissions=true plus a dedicated unauth create path rather than a global skip; consider silent=true if notifications should not fire for public submissions.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.