Any special reason why
viewer_is_owner() are functions rather than just boolean data members of the
Page class? Seems to me that since the remote user (if any) must already be known, (so that the backend can decide what to insert into the data structure based on security settings) the data members could just be assigned to directly, thus saving a function call and making for simpler S2 code.
On a slightly related note, it seems to be a bad idea to make styles display “Log In” links when the user is not logged in, because most sites running FotoBilder will be private installations which only have an account for one or two users, and in this case a log in link for users browsing the galleries makes little sense. Perhaps this should be a boolean style property which defaults to off, thus allowing users to choose?