in django.contrib.admin.sites.AdminSite?.index permissions are calculated like so:
perms = {
'add': model_admin.has_add_permission(request),
'change': model_admin.has_change_permission(request),
'delete': model_admin.has_delete_permission(request),
}
but then in django.contrib.admin.sites.AdminSite?.app_index permissions are done like this:
perms = {
'add': user.has_perm("%s.%s" % (app_label, model._meta.get_add_permission())),
'change': user.has_perm("%s.%s" % (app_label, model._meta.get_change_permission())),
'delete': user.has_perm("%s.%s" % (app_label, model._meta.get_delete_permission())),
}
Personally I perfer the way that index does it, but either way, it just needs to be standardized so we don't have different pages giving different results.