Admin Tools¶
Advanced admin functionality including user impersonation and company user management.
Quick Start¶
from htk.admintools.decorators import company_officer_required, company_employee_required
from htk.admintools.utils import is_allowed_to_emulate_users, request_emulate_user
# Protect views for company officers
@company_officer_required
def officer_dashboard(request):
return render(request, 'officer_dashboard.html')
# Protect views for company employees
@company_employee_required
def employee_portal(request):
return render(request, 'employee_portal.html')
User Impersonation¶
Allow admins to emulate other users for testing:
from htk.admintools.utils import is_allowed_to_emulate_users, request_emulate_user
# Check if user can emulate others
if is_allowed_to_emulate_users(request.user):
# Allow user emulation in admin panel
pass
# Emulate a specific user
request_emulate_user(request, original_user, target_user)
Company User Management¶
Check company affiliation and roles:
from htk.admintools.models import company_officer_required, is_company_officer, is_company_employee
# Check officer status
if is_company_officer(user):
# User is a company officer
pass
# Check employee status
if is_company_employee(user):
# User is a company employee
pass
# Check email domain
if user.has_company_email_domain():
# User has company email
pass
Company Data Lookups¶
Get mappings of company users:
from htk.admintools.utils import get_company_officers_id_email_map, get_company_employees_id_email_map
# Get officers mapping
officers = get_company_officers_id_email_map()
# Returns: {user_id: email, ...}
# Get employees mapping
employees = get_company_employees_id_email_map()
# Returns: {user_id: email, ...}
Configuration¶
# settings.py
# Enable company user features
COMPANY_ADMIN_ENABLED = True