Лучше пожалуй проверять has_permission, добавить permission группе и добавить туда юзера. Это более гибко, учитывает суперюзера, вот не помню учитывает ли User.is_active. https://docs.djangoproject.com/en/1.3/topics/auth/#id8
Второй вариант лучше решить через per object permission. В последних версиях уже предусмотрен механизм для этого, а в 1.4 бэкэнд обязан поддерживать эту фичу: https://docs.djangoproject.com/en/1.3/topics/auth/#handling-object-permissions Сам этим не пользовался.
Есть приложение http://packages.python.org/django-guardian/ но это вообще для настройки всего через админку. В вашем варианте можно просто инкапсулировать в модели юзера и использовать типа:
request.user.can_see(obj_client)
что бы потом в одном месте изменения вносить.
Ну или попробовать сделать через бэкэнд по доке. Это будет вообще "кошерно", но без опыта можете потратить много времени.