Skip to content

Add User (Staff/Reseller/Retailer)

Overview

Add User is the unified interface for creating all types of users in Zal Ultra. This single page handles user creation for 8 different profile types with role-based permissions, smart validation, and automatic hierarchy management.

Why It's Important:

  • 🎯 Unified Interface - One page for all user types
  • 👥 Multi-tier Hierarchy - Admin → Reseller → Subreseller → Retailer
  • 🔐 Role-Based Access - Automatic permission assignment
  • Smart Validation - Profile type and role matching
  • 📱 Format Validation - Phone and identity number checking
  • 🔒 Security - Password hashing and duplicate prevention

User Hierarchy

Profile Types (8 Types)

1. Admin (Profile Type 1)
   └── Can create: Staff, Resellers

2. Admin Staff (Profile Type 2)
   └── Can create: Based on permissions

3. Reseller (Profile Type 3)
   ├── Can create: Subresellers
   └── Can create: Reseller Staff (Profile Type 6)

4. Subreseller (Profile Type 4)
   ├── Can create: Retailers
   └── Can create: Subreseller Staff (Profile Type 7)

5. Retailer (Profile Type 5)
   └── Can create: Retailer Staff (Profile Type 8)

6. Reseller Staff (Profile Type 6)
   └── Works under Reseller

7. Subreseller Staff (Profile Type 7)
   └── Works under Subreseller

8. Retailer Staff (Profile Type 8)
   └── Works under Retailer

Profile Type & Role Type Matching

⚠️ Critical Rule: Profile Type MUST Match Role Type

Valid Mappings:

Profile Type 1 (Admin) → Role Type 1 (Admin) ✅
Profile Type 2 (Admin Staff) → Role Type 2 (Staff) ✅
Profile Type 3 (Reseller) → Role Type 3 (Reseller) ✅
Profile Type 4 (Subreseller) → Role Type 4 (Subreseller) ✅
Profile Type 5 (Retailer) → Role Type 5 (Retailer) ✅
Profile Type 6 (Reseller Staff) → Role Type 6 (Reseller Staff) ✅
Profile Type 7 (Subreseller Staff) → Role Type 7 (Subreseller Staff) ✅
Profile Type 8 (Retailer Staff) → Role Type 8 (Retailer Staff) ✅

Error Message:

Profile Type And Role Type Mismatch. 
Selected Profile Type: Reseller, Selected Role Type: Staff. 
Please Select Matching Profile Type And Role Type.

Step-by-Step Guide

Step 1: Access Add User Page

Navigate:

  1. Go to User Management menu
  2. Click All Users
  3. Click Actions dropdown
  4. Select Add User

Permission Required:

  • ✅ Admin can add users
  • ✅ Staff can add users (if permission granted)
  • ✅ Resellers can add Subresellers/Staff
  • ✅ Subresellers can add Retailers/Staff
  • ✅ Retailers can add Retailer Staff

Step 2: Configure Status Toggles

1. Status (Optional, Default: ON)

Purpose: Enable or disable user account

Options:

ON (1) = User can login ✅
OFF (0) = User cannot login ❌

Default: ON (enabled)


2. SMS Status (Optional, Default: OFF)

Purpose: Enable or disable SMS notifications

Options:

ON (1) = User receives SMS ✅
OFF (0) = No SMS sent ❌

3. Email Status (Optional, Default: OFF)

Purpose: Enable or disable email notifications

Options:

ON (1) = User receives emails ✅
OFF (0) = No emails sent ❌

Step 3: Select Profile Type

Choose User Type Based on Your Role:

For Admin/Staff:

Option 1: Admin Staff (2)
Option 2: Reseller (3)

For Reseller:

Option 1: Subreseller (4)
Option 2: Reseller Staff (6)

For Subreseller:

Option 1: Retailer (5)
Option 2: Subreseller Staff (7)

For Retailer:

Option: Retailer Staff (8)

Step 4: Select Role & Permissions

Choose Matching Role:

Rule: Role Type MUST match Profile Type

Example for Reseller:

Profile Type: Reseller (3)
Role: Select a role with Role Type 3
Example: "Reseller Manager" (Role Type 3) ✅

Step 5: Fill Required Fields

1. Full Name (Required)

Validation:

✅ Required
✅ Max 32 characters
✅ Must be unique
❌ Cannot be duplicate

Examples:

✅ "John Smith"
✅ "Jane Doe"
❌ "" (empty)
❌ "John Smith" (if already exists)

2. Username (Required)

Validation:

✅ Required
✅ Max 25 characters
✅ Must be unique
❌ Cannot be duplicate

Best Practices:

✅ Use lowercase
✅ No spaces
✅ Use underscores or dots

Examples:

✅ "john.smith"
✅ "jane_doe"
✅ "reseller123"
❌ "" (empty)
❌ "john.smith" (if already exists)

3. Password (Required)

Security:

- Automatically hashed (bcrypt)
- Never stored in plain text
- Cannot be retrieved (only reset)

Best Practices:

✅ Min 8 characters
✅ Mix of letters, numbers, symbols
✅ Not common words

Examples:

✅ "SecurePass123!"
✅ "MyP@ssw0rd2024"
❌ "" (empty)
❌ "123" (too weak)

4. Identity (Required)

Validation:

✅ Required
✅ Must be unique (unless duplicate allowed in settings)
✅ Format validated (if enabled in settings)
❌ Cannot be empty

Duplicate Handling:

If "Allow Duplicate NID" enabled in settings:
  - Multiple users can have same identity
  - Useful for family accounts
If disabled (default):
  - Each identity must be unique

Examples:

✅ "1234567890123"
✅ "ABC-123-456"
❌ "" (empty)
❌ "123" (invalid format)

5. Phone (Required)

Validation:

✅ Required
✅ Must be unique (unless duplicate allowed in settings)
✅ Format validated (if enabled in settings)
❌ Cannot be empty

Duplicate Handling:

If "Allow Duplicate Phone" enabled in settings:
  - Multiple users can have same phone
  - Useful for shared contacts
If disabled (default):
  - Each phone must be unique

Examples:

✅ "+8801712345678"
✅ "01712345678"
✅ "+1-555-123-4567"
❌ "" (empty)
❌ "123" (invalid format)

6. Email (Required)

Validation:

✅ Required
✅ Must be valid email format
✅ Must be unique
❌ Cannot be duplicate

Examples:

✅ "[email protected]"
✅ "[email protected]"
❌ "" (empty)
❌ "invalid-email"
❌ "[email protected]" (if already exists)

Step 6: Fill Optional Fields

1. Address (Optional)

Example: "123 Main Street, Apartment 4B"

2. Country (Optional)

Type: Dropdown Example: "Bangladesh", "United States"

3. Province/State (Optional)

Type: Dropdown (based on country) Example: "Dhaka", "California"

4. City (Optional)

Type: Dropdown (based on province) Example: "Dhaka City", "Los Angeles"

5. ZIP Code (Optional)

Example: "1000", "90210"

6. Date of Birth (Optional)

Format: Date picker Example: "1990-01-15"

7. About (Optional)

Type: Textarea Example: "Senior network engineer with 10 years experience."


Step 7: Submit User Creation

Click "Save" or "Submit"

Success Response:

Successfully Added
User created with ID #123
Activity logged

Automatic Actions:

✅ Password hashed
✅ Role assigned
✅ Permissions granted
✅ Balance limit set ($50,000 default)
✅ Created by info recorded
✅ Activity log generated

Who Can Create What

Admin/Staff Permissions

Admin Can Create:

✅ Admin Staff (Profile Type 2)
✅ Resellers (Profile Type 3)
✅ Any profile type (with proper role)

Staff Can Create:

✅ Based on assigned permissions
✅ Usually: Resellers, Subresellers
❌ Cannot create Admin

Reseller Permissions

Reseller Can Create:

✅ Subresellers (Profile Type 4)
✅ Reseller Staff (Profile Type 6)
❌ Cannot create other Resellers
❌ Cannot create Admin/Staff

Automatic Profile Type Assignment:

If Reseller selects Profile Type 6:
  → Creates Reseller Staff ✅
If Reseller selects any other type:
  → Automatically creates Subreseller (4) ✅

Subreseller Permissions

Subreseller Can Create:

✅ Retailers (Profile Type 5)
✅ Subreseller Staff (Profile Type 7)
❌ Cannot create Resellers
❌ Cannot create Subresellers

Automatic Profile Type Assignment:

If Subreseller selects Profile Type 7:
  → Creates Subreseller Staff ✅
If Subreseller selects any other type:
  → Automatically creates Retailer (5) ✅

Retailer Permissions

Retailer Can Create:

✅ Retailer Staff (Profile Type 8)
❌ Cannot create any other type

Automatic Profile Type Assignment:

Retailer always creates:
  → Retailer Staff (8) ✅

Common Use Cases

Use Case 1: Create Reseller

Scenario: Admin wants to create a Reseller

Steps:

1. Profile Type: Reseller (3)
2. Role: Reseller Manager (Role Type 3)
3. Username: "john_reseller"
4. Full Name: "John Smith"
5. Password: "SecurePass123!"
6. Identity: "1234567890123"
7. Phone: "+8801712345678"
8. Email: "[email protected]"
9. Submit

Result:

✅ Reseller created
✅ Can login
✅ Can create Subresellers
✅ Can manage subscribers

Use Case 2: Create Subreseller (by Reseller)

Scenario: Reseller wants to create a Subreseller

Steps:

1. Login as Reseller
2. Go to Add User
3. Profile Type: Subreseller (4)
4. Role: Subreseller Role (Role Type 4)
5. Fill required fields
6. Submit

Result:

✅ Subreseller created under Reseller
✅ Can create Retailers
✅ Reports to Reseller

Use Case 3: Create Retailer (by Subreseller)

Scenario: Subreseller wants to create a Retailer

Steps:

1. Login as Subreseller
2. Go to Add User
3. Profile Type: Retailer (5)
4. Role: Retailer Role (Role Type 5)
5. Fill required fields
6. Submit

Result:

✅ Retailer created under Subreseller
✅ Can manage subscribers
✅ Reports to Subreseller

Use Case 4: Create Staff Member

Scenario: Reseller wants to create staff to help manage

Steps:

1. Login as Reseller
2. Go to Add User
3. Profile Type: Reseller Staff (6)
4. Role: Reseller Staff Role (Role Type 6)
5. Fill required fields
6. Submit

Result:

✅ Reseller Staff created
✅ Works under Reseller
✅ Limited permissions

Troubleshooting

Issue 1: Profile Type and Role Type Mismatch

Problem:

Error: Profile Type And Role Type Mismatch. 
Selected Profile Type: Reseller, Selected Role Type: Staff.

Cause:

Profile Type and Role Type don't match

Solution:

1. Check Profile Type selected
2. Check Role Type of selected role
3. Ensure they match:
   Profile Type 3 (Reseller) → Role Type 3 ✅
   Profile Type 3 (Reseller) → Role Type 2 ❌
4. Select correct role or profile type

Issue 2: Duplicate Username

Problem:

Error: The username has already been taken.

Cause:

Username already exists in system

Solution:

1. Choose different username
2. Add numbers or underscores
3. Examples:
   john_smith → john_smith2
   john_smith → john.smith
   john_smith → jsmith

Issue 3: Duplicate Phone/Identity

Problem:

Error: The phone has already been taken.
Error: The identity has already been taken.

Cause:

Phone or Identity already exists
Duplicate prevention enabled (default)

Solution:

Option 1: Use different phone/identity
Option 2: Enable duplicate in settings
  - Go to Settings → User Settings
  - Enable "Allow Duplicate Phone"
  - Enable "Allow Duplicate NID"
  - Useful for family accounts

Issue 4: Invalid Phone/Identity Format

Problem:

Error: Invalid Phone or Identity Number Format!

Cause:

Format validation enabled in settings
Phone/Identity doesn't match required format

Solution:

1. Check country-specific format
2. Include country code for phone
3. Use proper identity format
4. Examples:
   Phone: +8801712345678 ✅
   Phone: 123 ❌
   Identity: 1234567890123 ✅
   Identity: 123 ❌

Issue 5: Cannot Create Certain Profile Types

Problem:

Profile type option not showing
Or automatically changed after submit

Cause:

Automatic profile type assignment based on creator

Solution:

Understand hierarchy rules:
- Reseller can only create: Subreseller, Reseller Staff
- Subreseller can only create: Retailer, Subreseller Staff
- Retailer can only create: Retailer Staff

If you select wrong type, system auto-corrects:
- Reseller selects "Reseller" → Creates "Subreseller"
- Subreseller selects "Subreseller" → Creates "Retailer"

Best Practices

1. Profile Type Selection

Before Creating:

✅ Understand user hierarchy
✅ Know what user will do
✅ Plan reseller network
✅ Consider permissions needed

Profile Type Guidelines:

✅ Admin Staff: Internal team members
✅ Reseller: Main distributors
✅ Subreseller: Secondary distributors
✅ Retailer: Direct sellers
✅ Staff: Helper accounts

2. Role Assignment

Role Selection:

✅ Always match Profile Type
✅ Create roles before users
✅ Test roles first
✅ Document role permissions

Avoid:

❌ Mismatched profile and role types
❌ Overly permissive roles
❌ Generic role names

3. Username Convention

Best Practices:

✅ Use consistent format
✅ Include user type prefix
✅ Keep it professional
✅ Make it memorable

Examples:

✅ "reseller_john"
✅ "sub_jane"
✅ "retail_mike"
✅ "staff_sarah"

4. Password Security

Requirements:

✅ Minimum 8 characters
✅ Mix of upper/lowercase
✅ Include numbers
✅ Add special characters
✅ Unique per user

Avoid:

❌ Common passwords
❌ User's name
❌ Sequential numbers
❌ Reusing passwords

Summary

Add User is the foundation of multi-tier ISP management!

✅ Key Takeaways:

  1. Unified Interface - One page for all 8 profile types
  2. Smart Validation - Profile type and role type matching
  3. Automatic Hierarchy - System enforces proper structure
  4. Security First - Password hashing, duplicate prevention
  5. Format Validation - Phone and identity checking
  6. Activity Logging - All actions tracked

✅ Profile Types:

1. Admin
2. Admin Staff
3. Reseller
4. Subreseller
5. Retailer
6. Reseller Staff
7. Subreseller Staff
8. Retailer Staff

✅ Critical Rules:

✅ Profile Type MUST match Role Type
✅ Username must be unique
✅ Email must be unique
✅ Phone/Identity unique (unless allowed)
✅ Cannot create Admin (already exists)

✅ Best Practices:

✅ Plan hierarchy first
✅ Create roles before users
✅ Use consistent naming
✅ Strong passwords
✅ Validate contact info
✅ Document user structure

Perfect for ISPs with multi-tier reseller networks! 🚀

www.onezeroart.com