-
Notifications
You must be signed in to change notification settings - Fork 0
users
Understanding user roles, registration, profiles, and the COPPA age gate in ITG Media App.
ITG Media App has five built-in roles. Each role has specific permissions and access levels.
| Role | Description | Key Permissions |
|---|---|---|
host |
Show host / broadcaster | Create/manage shows, Director Control, Studio access, generate guest links, configure streaming |
guest |
Guest that appears on shows | Join guest rooms, manage own profile, view shows they're invited to |
athlete |
Athlete profile (Sports Module) | Sports stats, drills, leaderboard participation, verification submissions |
staff |
Production staff / moderators | Assist with show management, moderate chat, manage guest queue, view analytics |
admin |
Full system administrator | Django Admin access, all role permissions, system configuration, user management |
💡 The live deployment at https://donoconnor.com uses these roles. When you deploy your own instance, you can customize roles further.
| Permission | host | guest | athlete | staff | admin |
|---|---|---|---|---|---|
| Create/Manage Shows | ✅ | — | — | ✅ | ✅ |
| Director Control | ✅ | — | — | ✅ | ✅ |
| Studio Access | ✅ | — | — | — | ✅ |
| Join as Guest | ✅ | ✅ | ✅ | ✅ | ✅ |
| Generate Guest Links | ✅ | — | — | ✅ | ✅ |
| Manage Guest Queue | ✅ | — | — | ✅ | ✅ |
| Configure Streaming | ✅ | — | — | — | ✅ |
| Moderate Chat | ✅ | — | — | ✅ | ✅ |
| Django Admin | — | — | — | — | ✅ |
| Manage Users | — | — | — | — | ✅ |
| System Settings | — | — | — | — | ✅ |
- Navigate to
/register - Fill in the registration form:
- Email address
- Username
- Password (with confirmation)
- Role selection (if applicable)
- Complete the Turnstile CAPTCHA (if enabled)
- Submit the form
- Check your email for a verification link
- Click the verification link to activate your account
New accounts must verify their email before accessing restricted features:
- A verification email is sent after registration
- The link expires after a configurable time period
- Unverified accounts have limited access
- Resend verification link is available on the login page
If you forget your password:
- Go to
/forgot-password - Enter your email address
- Check your email for a reset link
- Click the link and set a new password
- Login with your new password
📧 If emails aren't arriving, check your spam folder or verify your SMTP configuration in the Configuration guide.
ITG Media App includes a COPPA (Children's Online Privacy Protection Act) age gate to comply with regulations for users under 13.
- During registration, users must provide their date of birth
- Users under 13 are flagged for parental consent
- A parent/guardian must complete the consent form at
/parent-consent - Until consent is verified, under-13 accounts have restricted features
- No personal data is collected from under-13 users without verified consent
Registration ──▶ Age < 13? ──yes──▶ Restricted Account
│ │
no ▼
│ Parent Consent Form
▼ │
Full Access ▼ Verified?
│
yes ─┴── no
│ │
Full Access Restricted
Each user has a profile page at /profile (own) or /profiles/<username> (view others).
| Field | Description |
|---|---|
| Avatar / Photo | Profile picture (upload or default) |
| Display Name | Public display name |
| Bio | Short biography / description |
| Location | City, state, or region |
| Website | Personal or professional website link |
| Social Links | Twitter/X, Instagram, etc. |
| Role Badge | Automatically displayed based on user role |
| Setting | Description |
|---|---|
| Public | Profile visible to everyone, including non-logged-in visitors |
| Registered Users Only | Visible only to logged-in users |
| Private | Only visible to the profile owner and admins |
When SPORTS_MODULE_ENABLED=True, athlete profiles include additional fields:
| Category | Fields |
|---|---|
| Basic Info | Height, weight, graduation year, position, school name, state |
| Performance | 40-yard dash time, vertical jump, shuttle time, bench press, squat, power clean |
| Academic | GPA |
| Links | Hudl, MaxPreps, Twitter/X |
| Sports | Multiple sports selection (football, basketball, baseball, etc.) |
| Stats | Sport-specific stats with history tracking |
| Verification | Video proof for stat verification, coach verification badge |
Coaches with is_verified_coach=True display:
- Verification badge on profile
- Years of experience
- Certifications list
See the Sports Module page for full details.
| Feature | Description |
|---|---|
| JWT Auth | JSON Web Tokens for secure, stateless authentication |
| Token Refresh | Automatic token refresh without re-login |
| Session Timeout | Configurable session duration |
| Rate Limiting | API rate limiting per user/IP to prevent abuse |
| Feature | Description |
|---|---|
| Turnstile CAPTCHA | Cloudflare privacy-friendly CAPTCHA on registration/login |
| Admin IP Whitelist | Restrict Django Admin access to specific IPs |
| COPPA Compliance | Age gate and parental consent for under-13 users |
Roles are assigned by administrators:
- Log into Django Admin at your configured
ADMIN_URL - Navigate to Members → Profiles
- Find the user and edit their profile
- Change the Role field
- Save
- Default role for new registrations is
guest - Admin can configure default role or require admin approval
- Athlete role is available when Sports Module is enabled
- Sports Module — Athlete profiles, stats, and leaderboards
- Admin Panel — Managing users and roles from Django Admin
← Back to Wiki Home