from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin

from .models import LoginEvent, User


@admin.register(User)
class UserAdmin(BaseUserAdmin):
    """Owner/staff accounts. This is the screen staff use instead of emailing."""

    list_display = ("username", "email", "first_name", "last_name",
                    "is_active", "is_staff", "last_login")
    list_filter = ("is_active", "is_staff", "is_superuser")
    search_fields = ("username", "email", "first_name", "last_name")
    ordering = ("username",)


@admin.register(LoginEvent)
class LoginEventAdmin(admin.ModelAdmin):
    """Read-only sign-in history."""

    list_display = ("occurred_at", "username", "succeeded", "ip")
    list_filter = ("succeeded", "occurred_at")
    search_fields = ("username", "ip")
    readonly_fields = ("user", "username", "succeeded", "ip", "user_agent", "occurred_at")

    def has_add_permission(self, request):
        return False

    def has_change_permission(self, request, obj=None):
        return False
