ACLs and Web Interfaces
Jeff Abbott
fdiv_bug at sniping.org
Tue Mar 4 20:56:06 GMT 2008
Bazaarers,
I'm sorry to keep beating this drum, but I'm really trying to find a way
we can make Bazaar fit my group's DRCS needs. I think it's a better
tool than Mercurial, and is built on a better design, and I'll take good
design over speed almost any day of the week.
I've realized a way that we can leverage file system ACLs to offer
fine-grained access control to the users without having to grant a whole
bunch of people SSH access to the central Bazaar server. Basically,
we've got a very well-supported AFS cell, and if we used that as our
centralized, main storage location we could finely control who could
read and write to different locations, as well as to whom we delegated
the rights to determine their repository tree's locations. Then they
could access the repositories locally on any machine that's an AFS
client, or via bzr+ssh to any machine that's an AFS client and has bzr
installed. But that doesn't solve the problem of the web interface.
Something that Mercurial's hgweb supports is the ability to tell it "all
my repos live below here" with the [collections] section in the hgweb
config. hgweb walks that file system path and finds any repos it can,
and presents them to the user if it can access that location with the
credentials it's running under. Usually, when running with mod_python
in Apache, that's the apache user, but if you add mod_auth_kerb into the
equation to authenticate users to the Kerberos realm, and mod_waklog to
run CGI and mod_python scripts with the Kerberos-authenticated user's
credentials, hgweb will only show them the repositories in AFS that they
can read.
I've tried bzr-webserve and loggerhead (running under mod_python rather
than as a separate daemon which is slooooooow), but neither of them seem
to support something like the [collections] section of hgweb's config,
nor do they effectively evaluate whether or not they can read from a
given repository path before showing it to a user. I could probably add
such functionality to bzr-webserve if need be, but I wanted to know
whether or not the Bazaar community had any other ideas.
I like Bazaar more than Mercurial, but it seems that for our niche
Mercurial already does what we want. I'd really like to be certain that
there aren't any better solutions for Bazaar before throwing in this
towel to Mercurial. Thoughts? Questions? Flames? :-)
Thanks,
Jeff
More information about the bazaar
mailing list