ну, класс таки будет один - User.
у которого будет поле status.
иначе вот есть у тебя ИД, если три класса - то фиг его знает, кто он там - пользователь, модер или админ, какой из инстансов создавать?
хотя, тоже можно легко обойти...
поставь в форму флаг того, что файл загружали. и, если на стороне сервера $_FILES пуст - то выводи сообщение об ошибке.
если файл отсекается по размеру - $_FILES будет пуст и никакого флага ошибки не будет...
Модель - это структура доступа к данным.
Вообще, модель стоит разделить на два класса: что-нибудь автогенерируемое (только геттеры / сеттеры и все) и что-то для доступа к данным (типа сложных выборок, поисков и т.п.).