Member Management
Members are registered customers in your internet cafe or gaming center. A member profile stores the customer's identity, contact information, login credentials, and billing preferences. Members can log in from client PCs, accumulate wallet balances, purchase time packages, earn loyalty points, and receive tier-based discounts on sessions and orders.
Member Profile Fields
Every member record contains the following information:
- Username: A unique, case-insensitive identifier the member uses to sign in at client PCs. Once created, the username cannot be duplicated across the system.
- Display name: The name shown in the Admin Panel, session lists, and client-side greeting. This is a required field.
- Password: Members can set a password for self-service login at client PCs. The password is stored as a hash and can be left blank initially (the member sets it on first login).
- Email: Optional email address. Visibility is controlled by the
DISPLAY_EMAILpermission. - Mobile: Optional phone number. Visibility is controlled by the
DISPLAY_GSMpermission. - Avatar: A profile image URL displayed on the client lock screen and in member lists.
- Gender: Defaults to "unknown". Can be set to male, female, or other for demographic filtering.
- Memo: A free-text note field for internal use. Only visible to staff, not to the member.
Member States
Each member has two independent state flags:
Active / Inactive
The active/inactive toggle controls whether the member appears in standard search results and can interact with the system. Deactivating a member is a soft delete. The profile and all associated data (wallet credits, time credits, session history) are preserved but the member is hidden from day-to-day operations.
Login Permission
The can_login flag controls whether the member is allowed to sign in from client PCs. A member can be active (visible in the system) but have login disabled, which is useful for members with outstanding debts or policy violations.
Tier Assignment
Each member can be assigned to a loyalty tier. The tier determines:
- Discount in BPS: A basis-point discount applied to session pricing. For example, a tier with
discount_bps = 500gives the member a 5% discount on the hourly rate. - Role label: A descriptive label (such as Silver, Gold, VIP) shown in the member's profile card and in session panels.
Tier assignment can be manual or automatic based on the loyalty points system. See the Loyalty Tiers page for details on how tiers are configured and how members progress through them.
Concurrent Connection Limit
The max_connection field sets the maximum number of simultaneous active sessions a member can have across all client PCs. The default value is 1, meaning the member can only be logged into one PC at a time. If a member attempts to log in on a second PC while already in an active session, the system will reject the login.
Increasing this value is useful for members who manage multiple machines (such as staff accounts) or for special membership tiers that allow multi-device usage.
Searching and Filtering Members
The Members page provides a virtual-scrolling list that handles large member databases efficiently. You can:
- Search: Type in the search bar to filter by username, display name, email, or mobile number. The search is case-insensitive and updates results in real time.
- Filter by status: Toggle between showing all members, only active members, or only inactive members.
- Sort: Click column headers to sort by name, last seen date, or creation date.
The virtual scrolling implementation loads only the visible portion of the member list into memory so performance remains smooth even with tens of thousands of registered members.
Online Status Indicator
When a member is currently logged into a client PC or has an active console session, their profile shows a green online indicator in the member list. The indicator also displays which specific client or console the member is currently using so staff can quickly locate a customer.
Creating a New Member
To create a new member:
- Navigate to the Members page from the sidebar.
- Click the Add Member button in the toolbar.
- Fill in at least the display name (required) and optionally a username for login.
- Set a tier if applicable, or leave it at the default.
- Adjust the max connections value if the default of 1 is not appropriate.
- Click Save to create the member.
The system automatically generates a unique ID for the member and records the creating cashier's identity.
Editing a Member
Select a member from the list to open their profile detail view. From here you can:
- Update any profile field (display name, email, mobile, gender, memo).
- Change the member's tier assignment.
- Toggle the
activeandcan_loginflags. - Reset or change the member's password.
- Adjust the concurrent connection limit.
All changes are saved immediately and an audit log entry is created.
Deleting a Member
Deleting a member removes their profile from the active system. This action requires the MEMBER_DELETE permission. Associated data such as session history and wallet records are preserved for reporting purposes but are no longer linked to an active member profile.
Permission Requirements
Access to member management features is controlled by the following permissions on the cashier role:
| Permission | Grants |
|---|---|
MEMBER_VIEW |
View the member list and search members |
MEMBER_ADD |
Create new member profiles |
MEMBER_UPDATE |
Edit existing member profiles |
MEMBER_DELETE |
Delete member profiles |
DISPLAY_EMAIL |
See the member's email address in the detail view |
DISPLAY_GSM |
See the member's mobile number in the detail view |
If a cashier's role does not include DISPLAY_EMAIL or DISPLAY_GSM, those fields are hidden in the member detail panel even though the data exists in the database.