On Thu, Jul 15, 2010 at 11:47:48PM +0100, John Beranek wrote: > Hello all, > > I've just had a look through the mailing lists and the issue tracker for > this topic, and not found it discussed before. So, I'll start in? > > Is the current behaviour on performing SVN activities (with Neon RA) > that violate access controls known to be bad? > > Environment is: > > Client SVN: 1.6.9 with ra_neon > Server SVN: Either of 1.6.12 or 1.5.6 > > If a directory in a repository is open for read for a particular user, > but closed for write, the following is the error message given to the > user. It's hardly friendly, is it!? > > svn: Commit failed (details follow): > svn: Server sent unexpected return value (403 Forbidden) in response to > CHECKOUT request for '/svn/sources/!svn/ver/43/Read/Only/Area/tags' > svn: Your commit message was left in a temporary file: > svn: 'svn-commit.tmp' > > To me, the worst part of this is the "Server sent _unexpected_ return > value". Why is "Forbidden" considered unexpected!? ra_neon is talking to > a mod_dav_svn server, which allows access to the repository to be > restricted - what's unexpected about that access being denied? > > Equally, if a user tries to check out an area of the repository they > don't have read access to, they get: > > svn: Server sent unexpected return value (403 Forbidden) in response to > OPTIONS request for 'http://svn.example.com/svn/svntest1/Private/Area' > > Again, "Forbidden" is "unexpected". > > Has no-one else reported this? Is it being worked on - anything?
Looks like this was improved in trunk ages ago, but not backported to 1.6.x. Can you try patching a client with the diff below and let us know if this fixes the problem? Thanks, Stefan $ svn log --diff -r 876615 https://svn.apache.org/repos/asf ------------------------------------------------------------------------ r876615 | jrvernooij | 2009-03-14 16:07:08 +0100 (Sat, 14 Mar 2009) | 6 lines * subversion/libsvn_ra_neon/util.c(generate_error): Return SVN_ERR_RA_DAV_FORBIDDEN for 403 errors. Approved by: rhuijben dlr Index: subversion/trunk/subversion/libsvn_ra_neon/util.c =================================================================== --- subversion/trunk/subversion/libsvn_ra_neon/util.c (revision 876614) +++ subversion/trunk/subversion/libsvn_ra_neon/util.c (revision 876615) @@ -546,6 +546,10 @@ generate_error(svn_ra_neon__request_t *req, apr_po return svn_error_create(SVN_ERR_FS_NOT_FOUND, NULL, apr_psprintf(pool, _("'%s' path not found"), req->url)); + case 403: + return svn_error_create(SVN_ERR_RA_DAV_FORBIDDEN, NULL, + apr_psprintf(pool, _("access to '%s' forbidden"), + req->url)); case 301: case 302: ------------------------------------------------------------------------ $