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.
How to get here
Section titled “How to get here”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.
Scope — whose subscribers you see
Section titled “Scope — whose subscribers you see”By default, a reseller sees subscribers where subscribers.reseller_id equals their own reseller ID. Three modifiers change that:
| Condition | What you see |
|---|---|
| Plain reseller, no extras | Only your own subscribers. Subscribers owned by your sub-resellers are hidden. |
Reseller with subscribers.view_all permission | All 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:
| Element | Admin sees | Reseller sees |
|---|---|---|
| Reseller filter dropdown | All resellers in the system | Only own + sub-resellers (or none if no sub-resellers) |
| NAS filter dropdown | All NAS devices | Only NAS devices assigned to this reseller |
| Service dropdown (Add / Edit) | All services | Only services assigned to this reseller (see Reseller → Services tab) |
| Bulk Action → Transfer Reseller | Can transfer to any reseller | Can transfer only to own sub-resellers (one-step, v1.0.546–547) |
Creating a subscriber
Section titled “Creating a subscriber”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:
- Parent reseller → admin: “please transfer this subscriber to my sub”.
- 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.
Bulk actions available to resellers
Section titled “Bulk actions available to resellers”The sticky toolbar above the table exposes the same bulk actions admins have, gated by permission:
| Action | Permission | Notes |
|---|---|---|
| Renew | subscribers.renew | Deducts from your wallet (or the sub-reseller’s, depending on owner). |
| Reset FUP | subscribers.reset_fup | Daily reset only — does not refill monthly quota. |
| Activate / Deactivate | subscribers.inactivate | Useful for grace-period customers. |
| Disconnect | subscribers.disconnect | Sends CoA Disconnect via the subscriber’s NAS. |
| Rename | subscribers.rename | Logged in transactions table as rename. |
| Add Days | subscribers.add_days | Extends expiry without taking a renewal payment. |
| Change Service | subscribers.change_service | Reseller-scope only — the new service must be in your assigned list. |
| Refill Quota | subscribers.refill_quota | Adds GB on top of the monthly cap. |
| Delete | subscribers.delete | Soft-delete by default; permanent delete is admin-only. |
| Transfer Reseller | subscribers.transfer | One-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.
Common workflows
Section titled “Common workflows””What did my sub-reseller’s customers do last week?”
Section titled “”What did my sub-reseller’s customers do last week?””- Subscribers → set the Reseller filter to your sub-reseller’s name.
- Set the Status counter chip to Active.
- The Last Seen column (v1.0.221) tells you who’s online now and who hasn’t connected for a while.
- 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””- Tick the 5 checkboxes in the table.
- Sticky toolbar → Transfer Reseller.
- In the dropdown, pick the sub-reseller — only your direct sub-resellers appear.
- Confirm. All 5 rows update in one transaction; the audit log records 5
transfer_subscriberentries with old → new reseller IDs.
”Renew everyone expiring in 7 days”
Section titled “”Renew everyone expiring in 7 days””- Click the Expiring counter chip — list filters to subscribers expiring in the next 7 days.
- Tick Select All in the toolbar.
- Bulk Action → Renew.
- 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
renewaltransaction per success. - 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/*.deletepermissions. - 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.
Permissions summary
Section titled “Permissions summary”| Permission | What it gates on this page |
|---|---|
subscribers.view | The page itself is visible. |
subscribers.view_all | Bypasses the reseller_id scope filter. |
subscribers.create | ”Add Subscriber” button. |
subscribers.edit | Pencil icon on each row, full edit page. |
subscribers.delete | Trash icon in bulk toolbar + per-row. |
subscribers.renew / .reset_fup / .inactivate / .disconnect | The matching bulk buttons. |
subscribers.change_service | Change Service button + dropdown. |
subscribers.change_bulk | Access the dedicated Change Bulk page (high-volume edits). |
subscribers.bandwidth_rules | Per-subscriber bandwidth overrides on the edit page. |
subscribers.transfer | Bulk Transfer Reseller action. |
Related pages
Section titled “Related pages”- Subscribers (Admin view) — full feature documentation.
- Sub-Resellers — how the hierarchy works.
- Balance & Transactions — what each action deducts from your wallet.
- Partner / Read-Only Role —
view_allwithout write permissions. - Bulk Operations — high-volume edits beyond the bulk toolbar.