Skip to content

Managing Subscribers (Reseller)

The Subscribers page is identical in layout for admins and resellers, but the set of rows you see and the actions you can perform are filtered by your scope. This page covers everything that differs from the admin view in Subscribers (Admin).

If you’re an admin, read the admin page first. If you’re a reseller setting up your team, this page tells you what your operators will see.

After login, the Subscribers page is reached from:

  • Sidebar → Subscribers
  • Direct URL: /subscribers

Visible to resellers with the subscribers.view permission. Without it, the menu item is hidden and the URL 403s.

By default, a reseller sees subscribers where subscribers.reseller_id equals their own reseller ID. Three modifiers change that:

ConditionWhat you see
Plain reseller, no extrasOnly your own subscribers. Subscribers owned by your sub-resellers are hidden.
Reseller with subscribers.view_all permissionAll subscribers in the system, including other top-level resellers’. Used for partner / auditor roles — see Partner / Read-Only.
Reseller with sub-resellers (hierarchy view)Your own + your sub-resellers’ subscribers, scoped down the tree. The Reseller column shows which sub-reseller owns each row.

The Reseller column was added in v1.0.221 — it shows the username of the owning reseller. For sub-resellers’ subscribers, it shows ↳ Sub of: <parent> so you can see at a glance who owns the row two levels up.

Layout — what’s different from the admin view

Section titled “Layout — what’s different from the admin view”

The same five sections (sticky toolbar, status counters, filters, table, pagination) are present, with these differences:

ElementAdmin seesReseller sees
Reseller filter dropdownAll resellers in the systemOnly own + sub-resellers (or none if no sub-resellers)
NAS filter dropdownAll NAS devicesOnly NAS devices assigned to this reseller
Service dropdown (Add / Edit)All servicesOnly services assigned to this reseller (see Reseller → Services tab)
Bulk Action → Transfer ResellerCan transfer to any resellerCan transfer only to own sub-resellers (one-step, v1.0.546–547)

The Add Subscriber form is the same one admins see, with a constraint: the Reseller field is hidden and auto-set to your own ID. The Service dropdown lists only services assigned to you, at the price agreed with the admin.

If you have sub-resellers, you can manually pick a sub-reseller as the owner — this lets you create-on-behalf-of for a sub that’s just getting started.

Transferring a subscriber to a sub-reseller

Section titled “Transferring a subscriber to a sub-reseller”

Prior to v1.0.546, transferring a subscriber from a parent reseller to one of their sub-resellers required two steps:

  1. Parent reseller → admin: “please transfer this subscriber to my sub”.
  2. Admin clicks the transfer.

v1.0.546–547 removed that round-trip. A reseller can now directly transfer one of their own subscribers to a direct child sub-reseller, in one click, from the Subscribers list bulk-action menu. The transfer is logged in the audit log as transfer_subscriber with both reseller IDs and the subscriber ID.

Restrictions:

  • Source must be the calling reseller (you can’t transfer subscribers you don’t own).
  • Destination must be a direct child sub-reseller — not a grandchild (we only have one level anyway, but the validation is explicit).
  • Subscribers in the middle of an active session are transferred immediately; the next session keeps the new owner. No disconnect is forced.

The sticky toolbar above the table exposes the same bulk actions admins have, gated by permission:

ActionPermissionNotes
Renewsubscribers.renewDeducts from your wallet (or the sub-reseller’s, depending on owner).
Reset FUPsubscribers.reset_fupDaily reset only — does not refill monthly quota.
Activate / Deactivatesubscribers.inactivateUseful for grace-period customers.
Disconnectsubscribers.disconnectSends CoA Disconnect via the subscriber’s NAS.
Renamesubscribers.renameLogged in transactions table as rename.
Add Dayssubscribers.add_daysExtends expiry without taking a renewal payment.
Change Servicesubscribers.change_serviceReseller-scope only — the new service must be in your assigned list.
Refill Quotasubscribers.refill_quotaAdds GB on top of the monthly cap.
Deletesubscribers.deleteSoft-delete by default; permanent delete is admin-only.
Transfer Resellersubscribers.transferOne-step to direct sub-reseller; admin route otherwise.

The action toolbar is sticky at the top of the page since v1.0.221 — you don’t lose access while scrolling a long list.

”What did my sub-reseller’s customers do last week?”

Section titled “”What did my sub-reseller’s customers do last week?””
  1. Subscribers → set the Reseller filter to your sub-reseller’s name.
  2. Set the Status counter chip to Active.
  3. The Last Seen column (v1.0.221) tells you who’s online now and who hasn’t connected for a while.
  4. Click any subscriber row → Transactions tab for their full billing history.

”Move 5 customers from me to a new sub-reseller I just created”

Section titled “”Move 5 customers from me to a new sub-reseller I just created””
  1. Tick the 5 checkboxes in the table.
  2. Sticky toolbar → Transfer Reseller.
  3. In the dropdown, pick the sub-reseller — only your direct sub-resellers appear.
  4. Confirm. All 5 rows update in one transaction; the audit log records 5 transfer_subscriber entries with old → new reseller IDs.
  1. Click the Expiring counter chip — list filters to subscribers expiring in the next 7 days.
  2. Tick Select All in the toolbar.
  3. Bulk Action → Renew.
  4. Confirm. The system loops through, deducts the renewal price from your wallet (or each sub-reseller’s wallet for their owned subscribers), updates expiry dates, and creates one renewal transaction per success.
  5. If your wallet drops below your credit limit mid-loop, the remaining renewals are skipped and an error toast lists which subscribers were not renewed.

Differences for a reseller with subscribers.view_all

Section titled “Differences for a reseller with subscribers.view_all”

A reseller assigned the subscribers.view_all permission (typical for a Partner / read-only role) sees the system-wide list, the same as an admin. But:

  • They cannot create, edit, or delete subscribers unless they also have the matching *.create / *.edit / *.delete permissions.
  • The Add Subscriber button is hidden.
  • Bulk actions are hidden (no Renew / Reset / Activate buttons).
  • They can still drill into a subscriber’s detail page and look at history.

This is the “auditor” pattern — full visibility, zero write capability. See Partner / Read-Only Role for the full setup.

PermissionWhat it gates on this page
subscribers.viewThe page itself is visible.
subscribers.view_allBypasses the reseller_id scope filter.
subscribers.create”Add Subscriber” button.
subscribers.editPencil icon on each row, full edit page.
subscribers.deleteTrash icon in bulk toolbar + per-row.
subscribers.renew / .reset_fup / .inactivate / .disconnectThe matching bulk buttons.
subscribers.change_serviceChange Service button + dropdown.
subscribers.change_bulkAccess the dedicated Change Bulk page (high-volume edits).
subscribers.bandwidth_rulesPer-subscriber bandwidth overrides on the edit page.
subscribers.transferBulk Transfer Reseller action.