photo controller: do pre-request checks with callbacks