# KKCP Login Setup Guide

## Quick Setup

### Step 1: Sync Users Table
Run this script to sync all supervisors from ClubSupervisors to Users table:
```
http://your-domain/KKCP/php/sync_users.php
```

This will:
- Create/update all supervisor accounts in Users table
- Hash all passwords properly
- Create admin user if it doesn't exist

### Step 2: Login

**Admin Login:**
- URL: `http://your-domain/KKCP/php/auth/login.php`
- Username: `admin`
- Password: `password`

**Supervisor Login:**
- URL: `http://your-domain/KKCP/php/auth/login.php`
- Username: (from ClubSupervisors table, e.g., `papia`)
- Password: (from ClubSupervisors table, e.g., `papia@123`)

## Features

### Admin Access
- Full access to all menus and pages
- Can assign supervisors to districts via "Assign Field Officers" page
- Can manage all users and settings

### Supervisor Access
- Limited menu access (Dashboard, Mailbox, Clubs, Members, Staff, Notices)
- Data filtered by assigned district (if assigned)
- Cannot access admin functions

## Assign Supervisors to Districts

1. Login as admin
2. Go to: User Management > Assign Field Officers
3. Click "Assign" next to a supervisor
4. Select District (required)
5. Optionally select a specific Club
6. Click "Assign"

Once assigned, the supervisor will only see:
- Clubs in their assigned district
- Members from clubs in their assigned district

## Troubleshooting

### Can't login?
1. Run the sync script: `http://your-domain/KKCP/php/sync_users.php`
2. Check if user exists in Users table
3. Verify password is hashed (starts with `$2y$`)
4. Check IsActive = 1

### No data showing for supervisor?
- Supervisor needs to be assigned to a district first
- Admin must assign via "Assign Field Officers" page

## Database Tables

### Users Table
- Stores login credentials (hashed passwords)
- Links to ClubSupervisors via SupervisorId
- Role: 'Admin' or 'Supervisor'

### ClubSupervisors Table
- Stores supervisor information
- DistrictId: assigned district
- ClubId: assigned club (optional)

## Files

### Main Files:
- `php/auth/login.php` - Login page
- `php/sync_users.php` - Sync script
- `php/assign_field_officers.php` - Assignment interface
- `php/api/get_clubs.php` - API for clubs by district

### Modified Files:
- `php/includes/session.php` - Role-based access control
- `php/includes/navbar.php` - Menu structure
- `php/clubs.php` - District filtering
- `php/models/Member.php` - District filtering
- `php/views/members/index.php` - Auto-filtering
