=== FixGuru Access ===
Contributors: fixguru
Tags: access, temporary admin, backup, change log, support
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Temporary, logged access for the FixGuru team on one job: a temporary administrator that expires in 72 hours, a backup first, and a change log.

== Description ==

FixGuru (fixguru.com) fixes broken WordPress sites for a fixed price, and you only pay when you approve the fix. This plugin is how you let the team in without handing anyone a password.

When you enter the connect code from your FixGuru job page, the plugin:

1. Creates one temporary administrator account. It is removed automatically after 72 hours, or the moment you click Remove access.
2. Takes a backup first: a gzipped copy of the database and a ZIP of your plugins, themes and mu-plugins. Uploads are left out.
3. Logs every plugin, theme, user, setting and file change, and every sign-in, on the Tools > FixGuru Access screen.

Nobody is shown a password. The FixGuru team signs in through single-use links that expire after ten minutes, and each sign-in is written to the log with the address it came from.

The plugin talks to fixguru.com twice: once to confirm the connection, and once to say the access was removed. The shared secret used to authenticate FixGuru's calls is stored on your site only as a hash.

== External services ==

This plugin connects to the FixGuru service at fixguru.com, a paid website repair service. It is only useful while you have an open FixGuru job, and it does nothing until you enter a connect code.

What is sent, and when:

* When you click Connect, the plugin sends the connect code, your site address, your REST API base address, your WordPress version, the plugin version, the temporary administrator's user name and expiry time, and a random shared secret it just generated, to https://fixguru.com/plugin/wp/connect.
* When access ends (removed by you, expired, deactivated or uninstalled), the plugin sends the connect code, a SHA-256 hash of the shared secret and the reason to https://fixguru.com/plugin/wp/event.

Nothing else leaves your site. Backups stay on your site. Requests from FixGuru to your site (connection status, the change log, a single-use sign-in link, remove access) must carry the shared secret, which only FixGuru holds, and are refused without it.

Terms of service: https://fixguru.com/terms
Privacy policy: https://fixguru.com/privacy

== Installation ==

1. Upload the plugin ZIP under Plugins > Add New Plugin > Upload Plugin, and activate it.
2. Open Tools > FixGuru Access.
3. Enter the connect code shown on your FixGuru job page and click Connect.

To remove access at any time, click Remove access now on the same screen. Deactivating or uninstalling the plugin also removes the temporary administrator.

== Frequently Asked Questions ==

= Does FixGuru get my password? =

No. The temporary account has a random password nobody sees. Access is through single-use sign-in links that this plugin issues on request and that expire in ten minutes.

= Where are the backups? =

In a randomly named folder under wp-content/uploads/fixguru-access/, protected by an .htaccess rule on Apache. You can download or delete them from the Tools > FixGuru Access screen. Uninstalling the plugin deletes them.

= Does it work on multisite? =

It creates the account as a super admin on multisite and removes it the same way. The backup covers the shared database and plugin and theme folders.

== Screenshots ==

1. Enter the connect code from your FixGuru job page. Nothing happens until you do.
2. Connected: the temporary administrator and when it expires, the backup, and the Remove access now button.
3. The change log: every plugin, theme, user, setting and file change, and every sign-in with the address it came from.

== Changelog ==

= 1.0.0 =
First release.
