Xgenious/ docs

Trust & Security Plugins

A freelance marketplace asks people to send money to strangers and share unfinished work. Trust is the product. These three plugins protect it.

NDA

What NDA does

The NDA plugin attaches a confidentiality agreement to an order.

  • One agreement per order.
  • Both parties sign.
  • Typed signature, timestamp, and IP address.
  • Immutable signed record; changes create a new version.
  • PDF download for both parties and admins.
  • Optional fee, paid by wallet or a supported gateway.
  • Optional subscription gate on the requester.
  • Admin strip on the order details page.

Where users see it

SurfaceSlot
Client and freelancer order detailsorder.details_after
Admin order detailsadmin.order_details_after
Freelancer dashboard menudashboard.menu
Admin menuadmin.menu

NDA setup

  1. Activate nda.
  2. Open Admin → NDA → Settings.
  3. Write the agreement text.
  4. Choose free or paid.
  5. If paid, set the fee and currency.
  6. Choose whether a subscription is required.
  7. Choose which gateways may settle the fee.
  8. Save.
  9. Place a test order and sign as both parties.

Payment coverage

Only gateways that support the generic payment.complete round-trip can settle an NDA fee:

  • Pesapal
  • SePay
  • CoinPayments
  • YooMoney

Core's other gateways settle orders, not NDA fees. A free NDA works with every gateway.

NDA data

  • nda_agreements - one row per agreement and signature state.
  • nda_settings - template, fee, gateways, subscription requirement.
  • Permission: nda-manage.

NDA limits

  • The plugin does not provide legal advice. Have a lawyer review the template.
  • It does not verify legal authority to sign for a company.
  • It does not notarize. It records intent and identity evidence.
  • It cannot edit a signed record. Use a new version or cancel the order.

Read the operator walkthrough in NDA Agreements.

Security Manage

What Security Manage does

Security Manage is the marketplace's rule engine. It covers content, accounts, login, and access.

Content

  • Restricted words with word-boundary matching.
  • Off-platform contact detection: email, URL, phone, and social handles.
  • Actions: block, flag, or replace.
  • Violations queue with retained items.
  • Coverage across messages, listings, and profiles.

Accounts

  • Freeze with a reason, duration, and audit trail.
  • Auto-freeze after repeated violations.
  • Notify the user and the admin.
  • Unfreeze with a recorded reason.

Login

  • Lockout after repeated failures.
  • New-device alerts.
  • Disposable email domain blocking.
  • Optional 2FA enforcement.

Access

  • IP allow and block lists.
  • Country allow and block lists.
  • Rate limits for state-changing requests.
  • Security alerts for violations and failed logins.
  • Log retention and pruning.

Security Manage hooks

TypeName
Filtersecurity.restricted_words
Filtersecurity.scan
Filtersecurity.violation_queue
Filtersecurity.user_frozen
Filtersecurity.login_blocked
Filtersecurity.email_allowed
Filtersecurity.access_blocked
Filtersecurity.rate_limit
Filtersecurity.content_fields
Actionsecurity.log_activity
Actionsecurity.violation_record
Actionuser.login_failed
Actionuser.login
Actionsecurity.notify_user
Actionsecurity.notify_admin

Core listens to the notify actions and sends the email or admin notification, so the plugin never touches core mail classes.

Permissions

  • security-word-manage - words and rules.
  • security-log-manage - logs, violations, alerts, access control.
  • user-freeze-manage - freezes.

Setup order

  1. Activate security-manage.
  2. Confirm the admin email and site email are set.
  3. Add restricted words.
  4. Choose contact detection actions.
  5. Set freeze defaults.
  6. Set login lockout thresholds.
  7. Set access rules last, after testing.
  8. Watch the violations queue for a week before tightening.

Cautions

  • A broad country block can lock out your team and legitimate users.
  • A broad word list creates false positives in normal conversation.
  • Blocking all phone-like strings breaks order coordination.
  • Test on staging with real message samples.

Impersonate

What Impersonate does

Impersonate lets an administrator view the site as a client or freelancer.

  • Login as in the user list and user details page.
  • A visible banner while impersonating.
  • A confirmation dialog.
  • Audit trail entry.
  • Permission: impersonate-users.
  • No plugin tables.

Impersonate slots

SurfaceSlot
Admin user detailsadmin.user_details_after
Global bannerbody_end
Admin assetsadmin.assets

Impersonate setup

  1. Activate impersonate.
  2. Grant impersonate-users to the support role.
  3. Test with a test client.
  4. Confirm the banner is visible and the exit action works.

Rules

  • Use it to reproduce a problem, not to browse.
  • Do not change a user's password or settings while impersonating.
  • Tell the user if you need to inspect their account during a dispute.
  • Exit the impersonated session before returning to admin work.
  • The user does not see your password, but you can see what they see.

How the three work together

A typical trust flow:

  1. A client posts a sensitive job.
  2. The client requests an NDA from the order.
  3. Both parties sign.
  4. A message contains an off-platform payment request.
  5. Security Manage flags it and records a violation.
  6. An admin reviews the violation, freezes the account if needed, and notifies the user.
  7. Support uses Impersonate to reproduce a reported UI problem.

Daily checks

  • Violations queue reviewed.
  • Freezes with expiry reviewed.
  • Failed login spikes reviewed.
  • New-device alerts reviewed.
  • NDA requests waiting for a signature reviewed.
  • Impersonation audit entries reviewed.

Shared limits

  • Security rules are heuristics; they will miss some cases and flag others.
  • NDA signatures are electronic records, not notarized documents.
  • Impersonation is powerful; restrict the permission tightly.
  • None of these plugins replaces moderation by a human.

Last updated: October 21, 2026

Still stuck?
Our support team is ready to help you get set up.
Get support