def formfield_for_manytomany(self, db_field, request=None, **kwargs): if db_field.name == "user_permissions": kwargs["queryset"] = Permission.objects.filter( content_type=ContentType.objects.get_for_model(get_application_model()), codename="add_application" ) return super(UserAdmin, self).formfield_for_manytomany(db_field, request, **kwargs)
def may_create_application(self, user): if user.is_active and user.is_superuser: return True return user.has_perm("oauth2.add_application") and \ get_application_model().objects.filter(user=user).count() < user.userprofile.application_size